Related Titles
- Full Description
-
Backed by a tireless development community, PHP has been a model of language evolution over its 10+ year history. Borne from a contract developers pet project, these days youll find PHP powering many of the worlds largest web sites, including Yahoo!, Digg, EA Games, and Lycos.
PHP Objects, Patterns, and Practice, Second Edition shows you how to meld the power of PHP with the sound enterprise development techniques embraced by professional programmers. Going well beyond the basics of objectoriented development, youll learn about advanced topics such as working with static methods and properties, abstract classes, interfaces, design patterns, exception handling, and more. Youll also be exposed to key tools such as PEAR, CVS, Phing, and phpDocumentor.
What youll learn
- Write solid, maintainable code by embracing objectoriented techniques and design patterns
- Create detailed, versatile documentation using the powerful phpDocumentor automated documentation system
- Gain new flexibility during the development process by managing your code within a CVS repository and using the Phing build system
- Capitalize upon the quality code of others by using the PEAR package management solution
Who this book is for
PHP developers seeking to embrace sound development techniques such as objectorientation, design patterns, testing, and documentation.
- Source Code/Downloads
- Errata
-
If you think that you've found an error in this book, please let us know about it. You will find any confirmed erratum below, so you can check if your concern has already been addressed.
On page 64:
On page 64, there is the $methodname mentioned here:
function __call( $methodname, $args ) {
if ( method_exists( $this->writer, $methodname ) ) {
return $this->writer->$methodname( $this );
}
}
But in the code sample on listing 04.16.php, there is this:
function __call( $method, $args ) {
if ( method_exists( $this->writer, $method ) ) {
return $this->writer->$method( $this );
}
}
Looks like this is minor but it helps to keep the names consistent
On page 208:
Login class has a function called detach(). In the book, it says this:
function detach( SplObserver $observer ){
$this->storage->attach( $observer );
}
I think it was meant to be:
function detach( SplObserver $observer ){
$this->storage->detach( $observer );
}



