【问题标题】:How to use a common directory (Library) for many projects based on same framework?如何为基于相同框架的多个项目使用公共目录(库)?
【发布时间】:2012-08-23 07:33:06
【问题描述】:

我已经开始学习 Zend 框架,现在我创建了几个近 6 个项目进行练习,并且在每个项目的库中我都复制了 Zend 文件夹。有没有办法可以把这个 Library 文件夹或 library/Zend 文件夹放在一个公共的地方,并通过其他方式包含它,这样可以节省我的磁盘空间。

【问题讨论】:

  • 那么问题出在哪里?创建一个文件夹,将所有库放在那里并(可选)通过set_include_path()将其添加到包含路径。
  • 我不确定你节省了多少磁盘空间,但我很确定这并不重要。
  • 这样做的重点不是为了节省空间,而是更容易维护。只需要在一处更新库。
  • 在我看来,如果您必须对 zend 之类的库进行更改,那么将 lib 放在它自己的项目中可能会更好,因为谁知道在其他项目中会出现什么问题。

标签: php


【解决方案1】:

你可以把它放在任何地方,并将它添加到php.ini中的包含路径中, 或在运行时将其添加到 index.php 的包含路径中,就在您开始调用引导程序之前:

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

http://php.net/manual/en/function.set-include-path.php

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

【讨论】:

    【解决方案2】:

    如果您使用的是 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 上完成。

    【讨论】:

      最近更新 更多