PHP is not the panacea of programming languages, but well written PHP has proven to be usefull to develop quickly and smoothly complex applications and websites.
Good PHP coding practices, like most untyped and interpreted languages, includes intensive testunits usage which are the only way to prove that your program works (compilation won't help you there).
For its defense, the language itself is easy to learn, applications and scripts are easy to deploy and update. PHP5 introduced more oriented object concepts allowing cleaner application structures. Sadly no namespaces nor modules are supported yet.
There is a lot of bad things to tell about PHP, but sometimes it is simply the good choice... providing you have the good libraries.
- SQL - Our SQL library
- SPOD - (really) Simple Persistance Over Database
- PHPTAL - PHP Template Attribute Language
- PHP2XMI - Generates XMI (UML) from PHP files
- PEAR - Mainly for the library installer, sometimes for one or two library
- Phing - Manage your projects in an java ant way
- PHPUnit2 - Test your code