如何使用PHP在部署期间处理库依赖项?

时间:2009-10-02 16:50:58

标签: php zend-framework dependency-management

这主要是关于PHP的问题。我想知道:在部署到(生产)服务器时,如何确保所有必需的库都与应用程序打包在一起?

一个更具体的例子:我有一个在Zend Framework上运行的应用程序,每次我将应用程序滚动到服务器时,部署过程都会在该系统上创建一个全新的“安装”。因此,我需要将Zend Framework与我的应用程序捆绑在一起,然后将文件一起复制到正确的位置(它会自动完成)。目前,我正在使用svn:externals定义在部署期间从Zend的SVN系统中获取文件,但是,我不想依赖该SVN,我也不想在每次部署时将流量放在外部SVN上

在Java世界中,我习惯使用Maven来处理使用中央工件存储库的东西。我知道有一个Maven4PHP版本,但是,我更喜欢基于PH​​P的解决方案。另外,我不认为PEAR是一个很好的方法,因为它并没有真正满足我将应用程序(包括libs)捆绑到一个可部署的需求。

是否有一些我不知道的工具?或者你有什么很棒的技巧我应该知道吗?

非常感谢你的帮助!

迈克尔

3 个答案:

答案 0 :(得分:3)

有一个名为Phing的构建系统,它是用PHP编写的,基于Apache Ant。

我个人可以很好地与外部人生活在一起。

答案 1 :(得分:3)

我认为vendor branching可以很简单地解决你的例子中的问题,但是如果你也不喜欢大型存储库,我建议继续关注现代玩具,例如composer和{ {3}}(也许what it solve,我以前从未听说过:))

答案 2 :(得分:0)

尚未准备好生产,但您可能需要关注Phark项目。它是PHP的Bundler端口。

在查看Simplify your external dependency management幻灯片时,我遇到了一个名为pantr的工具,它可以用作PEAR安装程序。 pantr as PEAR installer,允许您在项目特定文件中指定依赖项。

文章Version Control != Dependency Management提供了有关使用名为Pyrus的新PEAR安装程序的一些信息