在PHP中创建共享库

在PHP中创建共享库,php,libraries,code-reuse,Php,Libraries,Code Reuse,我正在处理一些基于php的项目,我遇到了一个问题,就是必须用公共代码维护独立的代码库。所有项目之间共享的公共代码都是物理添加的(文件复制到文件夹中),当需要更改时,我们必须手动复制每个项目中公共代码功能中的修复 在java中,我们可以创建一个库(jar文件)并在不同的项目之间共享它。 PHP5中是否有任何与共享库相关的概念 PHP版本的jar称为Phar: 将共享代码签入版本控制存储库并签出到项目中不是更容易吗?例如,SVN通过支持这一点。尽管PHP现在支持phar文件,但解决问题的正确方法是有

我正在处理一些基于php的项目,我遇到了一个问题,就是必须用公共代码维护独立的代码库。所有项目之间共享的公共代码都是物理添加的(文件复制到文件夹中),当需要更改时,我们必须手动复制每个项目中公共代码功能中的修复

在java中,我们可以创建一个库(jar文件)并在不同的项目之间共享它。
PHP5中是否有任何与共享库相关的概念

PHP版本的jar称为Phar:

将共享代码签入版本控制存储库并签出到项目中不是更容易吗?例如,SVN通过

支持这一点。尽管PHP现在支持phar文件,但解决问题的正确方法是有效地使用include文件(和路径)

include路径总是以相同的顺序搜索文件-因此一个好的做法是定义两个层次结构,一个用于代码范围(例如,所有内容、应用程序、模块),另一个用于运行它的环境(保存相关URL、batabase连接等,例如,所有内容、环境)(开发/测试/现场),群集节点)


C.

我也在思考同样的问题。以下是一些想法

接近

1:将包含路径设置为所有项目中的一个共享文件夹。如果在编写/修改库时注意向后兼容性,则不应破坏任何内容。但是,是的,这是非常危险的,因为如果您破坏了某个内容,则会在所有项目中破坏它

2:创建库中包含的简单更新脚本,将文件从主源复制到项目。更新库时运行此脚本

3:使用版本控制设置。Git子模块可能工作()

4:Phar文件是我想尝试的东西。它唯一的缺点是它们不适用于低于5.3的PHP版本


更新:2011年12月4日-我建议使用方法#3。现在我已经使用了一段时间,这显然是最好的做法。

好吧,对不起,我从来没有更新过这个线程,我实际上使用了svn:external属性来获得这个donewell,对不起,我从来没有更新过这个线程或关闭它,我实际上使用了svn:external属性来完成这个任务。所以现在我只需在其他项目中引用库项目,如果我在其中一个项目中进行了更改,那么所有项目都会发生更改。我一直在对Git子模块使用上面的方法#3。(我相信svn:external在svn中是等效的)。我确信这是一条路要走。