Now that we are clear on what we are trying to achieve, let's start exploring the tools we will be using to implement and automate our deployment plan. Although we will enlist a handful of supporting utilities to get the job done, the tool we will be looking towards to automate the whole process and perform most of the tasks is called Phing.
Phing is a project build system. The name is actually a recursive acronym and stands for "PHing Is Not Gnu Make." Phing allows you to perform all kinds of tasks associated with building software. It's especially great for automating tasks, which is exactly what we have been discussing in the first part of this chapter.
Although Phing goes so far as to disavow any association with the utility make, it is pretty safe to say that make is part of Phing's heritage. However, Phing has been modeled much more closely after Ant, Java's predominant build tool, than anything else.
Using Phing instead of Ant has the advantage that it supports...