Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Integrating Zend Framework lib / Autoload


Reply


3 Posts   1730 Views

Avatar
rob.s

Community Member, 78 Posts

19 March 2010 at 6:39am

Hi,

anyone got an idea of integrating Zend Framework Classes/Components with the Zend Autoload features ?
In my App i want to use some zf classes inside an SS class.
Don't get it working.....

Kind regards,
Robert

Avatar
Hamish

Community Member, 712 Posts

19 March 2010 at 10:27am

Sapphire will autoload classes for you. Just make sure the Zend classes are sitting somewhere that Sapphire can add them to the manifest. Note that 2.4 actually uses some Zend classes (Caching and Date stuff in particular I think), so you can have a look at those for examples.

Avatar
rob.s

Community Member, 78 Posts

20 March 2010 at 12:45am

Hmmm, i do not think it's a good approach to add thousands of classes to the manifest.

For now i will do it this way:

sapphire/core/Core.php

function __autoload($className) {
   global $_CLASS_MANIFEST;
   if(isset($_CLASS_MANIFEST[$className])) {
      include_once($_CLASS_MANIFEST[$className]);
   } elseif ( substr ($className, 0, 4) == "Zend" ) {
      require(str_replace('_', '/', $className) . '.php');
   }
   
}

inside an own Method of a controller:

$user = 'XXXXX@googlemail.com';
$pass = 'YYYYYYYYY';
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar
$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);
$gdataCal = new Zend_Gdata_Calendar($client);
$this->gdataCal = $gdataCal;

Assuming that the Zend Framework lib is in the include_path.

Works fine.

I will try to do solve it a less ugly way ......

Robert