Before you are going to start to extend Phing let's have a look at the source layout. You should be comfortable with the organization of files witch in the source tree of Phing before start coding. After you extracted the source distribution or checked it out from git you should see the following directory structure:
$PHING_HOME
|-- bin
|-- classes
| `-- phing
| |-- filters
| | `-- util
| |-- mappers
| |-- parser
| |-- tasks
| | |-- ext
| | |-- system
| | | `-- condition
| | `-- user
| `-- types
|-- docs
| `-- phing_guide
`-- test
|-- classes
`-- etc
The following table briefly describes the contents of the major directories:
Table 20. Phing source tree directories
Directory | Contents |
---|---|
|
The basic applications (phing, configure) as well as the wrapper scripts for different platforms (currently Unix and Windows). |
|
Repository of all the classes used by Phing. This is the base directory that should be on the PHP include_path. In this directory you will find the subdirectory phing/ with all the Phing relevant classes. |
|
Documentation files. Generated books, online manuals as well as the PHPDoc generated API documentation. |
|
A set of testcases for different tasks, mappers and types. If you are developing in git you should add a testcase for each implementation you check in. |
Currently there is no distinction between the source
layout and
the build
layout of Phing. The directory layout shows the file tree that
carries some additional files like the Phing website. Later on there may be a
buildfile to create a clean distribution tree of Phing itself.