当与zend库不在同一目录中时自动加载类

时间:2010-09-22 18:06:59

标签: php zend-framework autoload

我已经决定,不是在每个应用程序的目录中都有Zend Framework的副本,我想将它保存在服务器上的一个位置,我的所有网站都使用一个副本。但是,我希望我的应用程序的自定义类仍然在应用程序文件夹中。所以文件夹结构有点像这样:

webroot
 |...library
 |     |......Zend
 |
 |...app1
 |     |.....Library
 |              |.......App1
 |
 |...app2
       |.....Library
                |.......App2

如何让Zend Loader自动在App1和App2中找到类? (最好只修改application.ini或bootstrap.php中的内容)

2 个答案:

答案 0 :(得分:0)

您可以使用符号链接创建单个库目录:

webroot/library/Zend -> /path/to/Zend/library/Zend
webroot/library/App1 -> /path/to/App1/library/App1
webroot/library/App2 -> /path/to/App2/library/App2

然后,您只需要路径中的webroot / library。

要处理版本更新,您只需更改符号链接以指向新安装:

webroot/library/Zend -> /path/to/Zend-test/library/Zend

答案 1 :(得分:0)

Zend Loader将使用您的php include_path来查找要加载的文件。

只需将webroot / library添加到include_path(您可以在php.ini或引导程序中执行),自动加载器应该能够找到框架。

如果您希望拥有Zend的共享版本,您也可以使用pear(http://pear.zfcampus.org/)来安装它,然后只要您将include_path设置为查看您的梨目录(/ usr) / share / php在我的机器上)然后你很高兴。

我建议只为dev机器做这个,因为其他人已经说过在生产中能够控制每个应用程序的zend版本是个好主意。