How do you handle library dependencies during deployment with PHP?

This is mainly a question about PHP. I was wondering: how do you make sure that all the necessary libraries are packaged with your application when deploying to (production) servers?

A more specific example: I have an application running on the Zend Framework, and each time I run the application on the server, the deployment process creates a new โ€œinstallationโ€ on this system. Therefore, I need to link the Zend Framework with my application, and then copy the files to the right places (this is done automatically). I currently use the svn: externals definition to retrieve files from the Zend SVN system during deployment, however I do not want to rely on this SVN, nor do I want to put traffic on external SVNs with every deployment.

In the Java world, I'm used to Maven, which handles such things using central artifact repositories. I know there is a version of Maven4PHP, however I am looking more for a PHP solution. In addition, I do not believe that PEAR is a good way, since it does not fulfill my requirement to combine the application (including libs) into one deployable one.

Is there any other tool that I don't know? Or do you have a great technique that I should know?

Many thanks for your help!

Michael

+6
php dependency-management zend-framework
source share
3 answers

There is a Phing build system that is written in PHP and is based on Apache Ant.

I personally can live very well with outside people.

+3
source share

I think that branching the vendor will solve the problem from your example quite simply, but if you also donโ€™t like large repositories, I would recommend keeping an eye on modern toys like composer and what it solves (and maybe phark , I never heard before :))

+3
source share

It's not ready for production yet, but you can follow the Phark project. This is the Bundler port for PHP.

While looking at simplifying external dependency management , I came across a tool called pantr that can be used as a PEAR installer. pantr as a PEAR installer that allows you to specify your dependencies in a specific project file.

The Version Control! = Dependency Management article has information on using a new PEAR installer called Pyrus

0
source share

All Articles