zend 1.12的路径问题

时间:2014-07-14 18:08:37

标签: php zend-framework

在zend framework 1.12中添加库时遇到问题,我必须在每个路由之前放置此脚本来获取库:

require_once  Zend_Registry::get('lib_dir')."....
有没有办法让它变得更容易?,因为要修改很多文件。提前问候和感谢!

我的结构如下:

>Auth
    >application
                >configs
                >controllers
                >forms
                >models
                >views
                >Bootstrap.php
   >docs
        >library
                >lib
                    >Google
                           >Auth
                           >Cache
                           >Client.php
                           ......

在我的'UserController'中,我有以下内容:

     require_once(__DIR__.'/lib/Google/Client.php');
     Zend_Loader_Autoloader::getInstance();

     $client_id = '1255128545685269859856666.apps.googleusercontent.com';
     $client_secret = 'sadFGHDMsdfgh-42552';
     $redirect_uri = 'http://localhost/auth/public/user/login';

     $client = new Google_Client();
     $client->setApplicationName("Procesos");
     $client->setClientId($client_id);
     $client->setClientSecret($client_secret);
     $client->setRedirectUri($redirect_uri);
     $client->addScope("https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"); /* Datos Gmail y Google+ */

在我的'Bootstrap.php'中,我有以下内容:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
 protected function _initAutoload() {
    $loader = Zend_Loader_Autoloader::getInstance();
    $loader->registerNamespace('lib_');
}

}

的application.ini

includePaths.library = APPLICATION_PATH "/../library"
autoloaderNamespaces[] = "lib_"

1 个答案:

答案 0 :(得分:0)

根据您在项目中的位置,我建议您将库依赖项迁移到composer:

ZF1 with Composer

Google API with Composer

如果你能够这样做,你就不必费力地添加任何其他库,因为大多数库在Composer上都可用,并且它们由Composer自动加载器自动加载。

有点脏,您仍然可以使用composer自动加载Google Api,只需将您的库添加到composer中,然后将您的composer自动加载器包含在index.php中(或者调用前端控制器文件)。

还有其他解决方案,但它们都需要包含许多文件。