Rating: - The best you can get in the advanced book field
I have had the pleasure to read through this book, and I need to say that it is a must for those who take PHP seriously. This is not a usual tutorial type book, which will show an example for every keyword with long-winded explanations, but rather a compilation of best pratices and recommendations which you can build on.
The performance section for example (which is one of my favourites) just scratches the surface on how you can use APD to find bottlenecks in your code. George provides you with some common examples, but the real work is still yours, you won't get a step-by-step guide.
Another interesting point of this book is that it is not to read from start to the end. You will surely find sections you are already familiar with (Smarty being a prime example), or sections too advanced for you (ex. distributed environments). And George also takes the liberty to use PHP 5 OO code before introducing the new PHP 5 features, and using XML-RPC before the chapter on RPC calls.
I find it very valuable to have a lengthy introduction to good coding practices at the begining, since most of the code in the book builds heavily on having a consistent coding style. What I miss from the begining though is the introduction on where can people find details if they are stuck. There are interesting PHP.net services (lxr.php.net for example), which are quite valuable if you are trying to find something in the PHP source, to get an idea of how things work.
George having been heavily involved in the APC and APD development knows a lot about PHP and Zend internals. The last section provides you with a current and correct explanation on how you can extend PHP. None of the printed books on the market, or any online tutorial or manual can beat this section currently.
Rating: - If you know PHP, buy this book.
Caveat: I am only basing my review on the sample chapter on Performance Tuning, a draft copy of the chapter on Zend Engine Internals, and the table of contents. Also, I may be biased because I've met George and he's really hard not to like--I'll try harder next time.
Go read the reviews of other PHP authors' blogs by doing a Feedster search of this book, you'll find that they highly recommend this book, sometimes over their own books!
Looking at the chapter list, you can see the topics covered are not what you see in a typical PHP book. In fact, if you don't know PHP, this is definitely not the book to be learning out of. If you don't know how to program, this is not the book to be learning out of. But if you use PHP professionally and need to get that extra mile or scale your PHP to a large site, then this is definitely the book to be buying.
There are simply no books, articles, or web references that provide a bird's eye view of the Zend Engine Internals. That is, until this book. The car analogy in this chapter is very apt for the potential reader of this book on a whole. If all you do is use PHP to get you from "point A to B" you certainly don't need this book. But if you are a PHP professional who is responsible for a high performance website, then you need to know the content of this book cold.
The chapter on Performance Tuning has a lot of gems you can't find in any other PHP reference and is essential knowledge when you use PHP on large sites. According to Michael Radwin, George's APD (the tool referenced in the chapter), is used to performance tune parts of Yahoo. But George also gives a nod to competing projects mentioning their strengths and weaknesses. (You can see why it's hard not to like the guy, his pragmatism supersedes his ego in every page.)
This neatly complements any other PHP book on the shelf (including any other "professional" PHP book). And I'll definitely have to give an updated review after I've read the other chapters.
I'm sure it will pay for itself many times over. Believe me, I speak from experience to know that George speaks from experience (he was involved in a PHP-based company that drove a company I worked for out of business).
(And to all of you who have received advanced copies... Grr!)
|