Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between Phing and PHPUnderControl?

We currently use a hand-rolled setup and configuration script and a hand-rolled continuous integration script to build and deploy our application. I am looking at formalizing this somewhat with a third party system designed for these purposes.

I have looked into Phing before, and I get that it's basically like Ant. But, my Ant experience is somewhat limited so that doesn't help me much. (Most of the Java work I have done was just deployed as a jar file).

I have looked into Cruise Control before, and I understand that phpUnderControl is a plug-in for CC. But, Phing says it also works with CC. So I am not clear on the overlap here. Do I need both Phing and phpUnderControl to work with CruiseControl, or are they mutually exlclusive?

What I need exactly is something that can:

  • Check out source from SVN
  • Install the database from SQL file
  • Generate some local configuration files from a series of templates and an ini file
  • Run all of our unit tests (currently ST, but easy to convert to PHPUnit) and send an email to the dev team if any tests break (with a stack trace of course)
  • Generate API documentation for the application and put it somewhere
  • Run a test coverage report

Now, we have just about all of this in one form or another. But, it'd be nice to have it all automated and bundled together in one process.

like image 588
Sam McAfee Avatar asked Feb 03 '23 13:02

Sam McAfee


1 Answers

phing is pretty much ant written in PHP where phpUnderControl adds support for PHP projects to CruiseControl and uses phing or ant on the backend to parse the build.xml file and run commands.

I just set up CruiseControl and phpUnderControl and it's been working great. It checks out my SVN, runs it through phpDocumentor, PHP_CodeSniffer, and PHPUnit whenever we do a check in. Since it's all based off of the build.xml file you can run just about any software you want through it.

like image 114
dragonmantank Avatar answered Feb 06 '23 10:02

dragonmantank