Библиотеката 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, посочена в Listing5 на този урок.

// 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 с много други loaderClasses. Този урок остарял ли е? (датирана е на 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(),
)));

След това настройте автоматичното зареждане (този код изисква поне v1.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