我正在研究一些基于php的项目,我遇到了必须使用公共代码维护单独的代码库的问题。所有项目共享的公共代码是物理添加的(文件被复制到文件夹中),当需要进行更改时,我们必须手动复制每个项目中公共代码功能的修复。
在java中,我们可以创建一个库(jar文件)并在不同的项目中共享它。 PHP 5中是否提供了与共享库相关的概念。
答案 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。现在我已经使用了一段时间,它似乎显然是最好的做法。