1

我试图在 php 中开发一个应用程序,以使用 Zend_Gdata 库从 picasa 下载图片。我的项目文件夹结构是这样的:

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

如您所见,我没有复制完整的 Zend 框架。我不想在这个项目中使用完整的 MVC 范例,只需要 Zend_Gdata 库。这是这样做的方法吗?还是我必须使用完整的 zend 框架?我对 Zend 完全陌生。

我在 IBM 站点http://www.ibm.com/developerworks/library/x-picasalbum/上发现这篇文章解释得很好。

但我似乎无法在该教程的清单 5 中指定的 Zend 文件夹中找到Loader.php文件。

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

相反,我在 Zend 文件夹中找到了这个文件夹Loader,其中包含许多其他 loaderClasses。那个教程过时了吗?(其日期为 2008 年 9 月 16 日;Zend 现在是 Zend2)该文件夹中的哪个文件用于旧 Loader.php 的目的?

4

1 回答 1

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();
于 2012-09-10T06:59:56.703 回答