I just got a copy of Advanced PHP Programming by George Schlossnagle. It’s the first good book published for PHP5, and an excellent read even for folks who are still using PHP4.
The book isn’t just about PHP. It covers many aspects of the development process used to produce a robust, fast, maintainable website. George covers a range of topics you won’t frequently find in a typical PHP book. For example, in Chapter 7 he spends a couple of pages discussing the different techniques for distributing files from your development environment into your production environment. He spends a large portion of the book discussing regression and unit testing, load testing and profiling/benchmarking. This isn’t an ordinary PHP book.
The last hundred pages of the book are for really advanced users. George covers the PHP extension APIs in more detail than the online documentation at php.net. You’ve gotta be a C/C++ hacker to appreciate this stuff.
My only possible complaint about the book is that it’s a little OO-centric. Most of the examples George presents use classes to provide some organization of data and grouping of functionality. His use of OO is a lot more palatable to me than the huge object hierarchies you find in some projects. I’ve never understood why people want something like log4php which adds 10k LOC to your application and adds little value over the built-in syslog().