Библиотека Zend_Gdata и файл loader.php API данных Picasa отсутствуют

Я пытаюсь разработать приложение на php для загрузки фотографий с picasa с использованием библиотеки Zend_Gdata. Структура папки моего проекта выглядит следующим образом:

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

Как видите, я не скопировал полную версию Zend Framework. Мне не нужна полная парадигма MVC в этом проекте, только библиотека Zend_Gdata. Это способ сделать это? Или мне нужно использовать полную структуру Zend? Я совершенно новичок в Zend.

Я нашел эту статью на сайте IBM http://www.ibm.com/developerworks/library/x-picasalbum/ очень хорошо объяснил.

Но я не могу найти файл Loader.php в папке Zend, указанной в листинге 5 этого руководства.

// 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');

Вместо этого я нашел эту папку Loader в папке Zend с множеством других классов загрузчиков. Этот учебник устарел? (датировано 16 сентября 2008 г.; Zend теперь называется Zend2) Какой файл в этой папке служит цели старого Loader.php?


person Ivin Jose    schedule 10.09.2012    source источник


Ответы (1)


Если вы используете Zend Framework 1, вы должны сначала добавить папку Zend в ваш 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(),
)));

Затем настройте автозагрузчик (для этого кода требуется как минимум версия 1.12 фреймворка)

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();

Если вы используете Zend Framework 2, вы должны использовать

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();

Приведенные выше инструкции настраивают автозагрузчик, поэтому вам не нужно загружать каждый класс.

В ZF1 вы можете сделать это напрямую:

$var = new Zend_Gdata_ClientLogin()

То же самое в ZF2:

$var = new ZendGData\ClientLogin();
person Maks3w    schedule 10.09.2012
comment
Спасибо за ответ. Я не использовал полную папку Zend, которую скачал с сайта. Я использовал только папку Zend, и она родственна моему test.php. Так мне нужно использовать этот тип require_once? Не будет работать require_once('Zend/Loader/StandardAutoloader.php')? - person Ivin Jose; 10.09.2012
comment
Я не получил имя папки ZendGData при загрузке. И при поиске на их сайте эта страница => framework.zend.com/download/gdata отсутствует. . Есть ли другое место, где я могу получить gdata? - person Ivin Jose; 10.09.2012
comment
ZendGData — это новое название компонента в ZF2, и вы можете скачать исходники с github.com/zendframework/ZendGData или, если вам нужен менеджер пакетов (например, Pyrus или Composer), то packages.zendframework.com - person Maks3w; 10.09.2012
comment
Большое спасибо @Maks3w. Это сработало. Знаете ли вы какое-нибудь место, где я могу получить документацию или список функций GData для Zend2? - person Ivin Jose; 10.09.2012
comment
На данный момент API очень похож на версию ZF1, просто измените префиксы классов. - person Maks3w; 10.09.2012