在PHP中创建共享库

时间:2010-09-01 09:29:45

标签: php libraries code-reuse

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

在java中,我们可以创建一个库(jar文件)并在不同的项目中共享它。 PHP 5中是否提供了与共享库相关的概念。

4 个答案:

答案 0 :(得分:3)

PHP的jar版本称为Phar: http://php.net/manual/en/book.phar.php

答案 1 :(得分:1)

将共享代码检入版本控制存储库并将其检入项目会不会更容易?例如,SVN支持svn:externals property

答案 2 :(得分:1)

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

总是按照文件的相同顺序搜索包含路径 - 所以一个好的做法是定义2个层次结构,一个用于代码范围(例如,所有内容,应用程序,模块),另一个用于环境正在运行(持有诸如相关URL,数据库连接等内容,例如所有内容,环境(开发/测试/实时),集群节点)

下进行。

答案 3 :(得分:0)

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

方法

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

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

3:使用版本控制设置。 Git子模块可能有效(http://book.git-scm.com/5_submodules.html

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

更新:04/12/2011 - 我建议使用方法#3。现在我已经使用了一段时间,它似乎显然是最好的做法。