For my new web project (whose temporary name is SmartyPot) I plan to use a strict way of coding in PHP. That is to say: unit testing, logging, debugging and profiling.
For unit testing, we can rely on two packages:
- PHPUnit from the PEAR repository, a regression testing framework for unit tests;
- the old PhpUnit (last released 20020327), which claims to be based on the JUnit framework for Java.
But you can also choose the really impressive Simple Test PHP Unit Test Framework, which is able to use the aforementioned unit testing packages. This framework does not only offer to build unit test cases, but also web test cases and it can create mock objects.
For logging, we have Log4php, a port of log4j, the most popular Java logging framework, both project being part of the Logging Services Project at Apache.
For documentation, two alternatives:
For debugging and profiling:
- DBG, the one I use at the moment (integrated in PHPEdit);
- apd from the PECL repository;
- the Xdebug extension for PHP;
- ab - Apache HTTP server benchmarking tool.