Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为基于相同框架的多个项目使用公共目录(库)?_Php - Fatal编程技术网

Php 如何为基于相同框架的多个项目使用公共目录(库)?

Php 如何为基于相同框架的多个项目使用公共目录(库)?,php,Php,我已经开始学习Zend框架,现在我已经创建了几乎6个用于实践的项目,在每个项目的库中,我都复制了Zend文件夹。是否有一种方法可以将此库文件夹或库/Zend文件夹放在公共位置,并通过其他方式将其包括在内,从而节省磁盘空间 您可以将其放置在任何位置,并将其添加到php.ini中的include路径, 或者在运行时,在开始调用引导程序之前,将其添加到index.php中的include路径: $path = 'path_to_zend'; set_include_path(get_include_p

我已经开始学习Zend框架,现在我已经创建了几乎6个用于实践的项目,在每个项目的库中,我都复制了Zend文件夹。是否有一种方法可以将此文件夹或库/Zend文件夹放在公共位置,并通过其他方式将其包括在内,从而节省磁盘空间

您可以将其放置在任何位置,并将其添加到php.ini中的include路径, 或者在运行时,在开始调用引导程序之前,将其添加到index.php中的include路径:

$path = 'path_to_zend';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);


这样,如果部署到不允许修改php.ini的主机,就不必依赖修改php.ini。

如果使用Linux,可以使用软链接

对于Windows,您可以通过分配一个专用于第三方库的文件夹并将该目录添加到PHP的
include_path
中来获得。这可以在
php.ini
文件中找到

我的风格是有一个
D:/PHP_Libraries
文件夹,将Zend Framework放在那里(以及其他像Doctrine这样的库),我的
PHP.ini
如下:

include_path= ".;c:\php\includes;d:\PHP_Libraries"

对于Linux发行版也可以这样做。这也可以在Mac电脑上完成。

那么问题出在哪里?创建一个文件夹,将所有库放在其中,然后(可选)通过
set\u include\u path()
将其添加到include路径。我不确定这样做可以节省多少磁盘空间,但我很确定这并不重要。主要的一点不是节省空间,而是更易于维护。只需要在一个地方更新库。在我看来,如果您必须像zend那样对库进行更改,那么最好将库放在它自己的项目中,因为,谁知道在其他项目中会出现什么问题。