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   1711 Views

Avatar
rob.s

19 March 2010 at 6:39am Community Member, 78 Posts

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

19 March 2010 at 10:27am Community Member, 712 Posts

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

20 March 2010 at 12:45am Community Member, 78 Posts

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