Search code examples
zend-frameworkgoogle-apizend-gdata

Zend_Gdata library and Picasa data API -- loader.php file missing


Im trying to develop an application in php to download pics from picasa using Zend_Gdata library. My project folder structure is like this:

www(wamp)
  /project
    test.php
    /Zend
      /Authentication
      /Barcode
      .
      .
      /View
      /XmlRpc

As you can see, i havent copied the full Zend Framework. I dont want the full MVC paradigm in this project, just the Zend_Gdata library. Is this the way to do this? Or do i have to use the complete zend framework? Im completely new to Zend.

I found this article at IBM site http://www.ibm.com/developerworks/library/x-picasalbum/ very well explained.

But i cant seem to find the Loader.php file in Zend folder specified in the Listing5 of that tutorial.

// load library
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Photos');
Zend_Loader::loadClass('Zend_Http_Client');

Instead i found this folder Loader in the Zend folder with lots of other loaderClasses. Is that tutorial outdated? (its dated 16-Sep-2008; Zend is now Zend2) Which file in that folder serve the purpose of old Loader.php?


Solution

  • If you are using Zend Framework 1 you must first add the Zend folder to your include_path

    set_include_path(implode(PATH_SEPARATOR, array(
        realpath(realpath(dirname(__FILE__) . '/../library'), // /../library is the relative path to the Zend folder 
        get_include_path(),
    )));
    

    Then setup the autoloader (this code requires at least v1.12 of the framework)

    require_once __DIR__ . '/../library/Zend/Loader/StandardAutoloader.php';
    $loader = new Zend_Loader_StandardAutoloader(
        array(
             Zend_Loader_StandardAutoloader::LOAD_NS => array(
                 'Zend'     => __DIR__ . '/../library/Zend',
             ),
        ));
    $loader->register();
    

    If you are using Zend Framework 2 then you must use

    require_once __DIR__ . '/../library/Zend/Loader/StandardAutoloader.php';
    $loader = new Zend\Loader\StandardAutoloader(
        array(
             Zend\Loader\StandardAutoloader::LOAD_NS => array(
                 'Zend'     => __DIR__ . '/../library/Zend',
                 'ZendGData'=> __DIR__ . '/../library/ZendGData',
             ),
        ));
    $loader->register();
    

    The instructions above setup the autoloader so you don't need load each class.

    In ZF1 you can do directly:

    $var = new Zend_Gdata_ClientLogin()
    

    The same in ZF2 is:

    $var = new ZendGData\ClientLogin();