Phing uses XML buildfiles that contain a description of the things to do. The buildfile is structured into targets that contain the actual commands to perform (e.g. commands to copy a file, delete a directory, perform a DB query, etc.). So, to use Phing, you would first write your buildfile and then you would run phing, specifying the target in your buildfile that you want to execute.
% phing -f mybuildfile.xml mytarget
By default Phing will look for a buildfile named
build.xml
(so you don't have to specify the buildfile name
unless it is not build.xml
) and if no target is specified
Phing will try to execute the default target, as specified in the
<project>
tag.
In the same way as traditional make files (but without most of the traditional drawbacks) targets can have dependencies. They can depend on both other targets as well as other files.