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.
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!)
I've been programming in PHP full-time for 5 years now. I remember when I was first learning, how all the books felt a little over my head, in a good way. Very slowly I understood things that didn't make sense before. And then very slowly I'd start to incorporate those things into my day-to-day programming. After 2 years or so, I missed that feeling. I'd check out new PHP books and flip through every chapter saying, "Yeah yeah yeah...". I realized I had become an expert. I was honestly impressed looking at the table of contents of this book. This is NOT your usual PHP book! That's obvious right away. So I ordered it. And it just arrived yesterday. I was up all night reading it, and again today. This is the most amazing PHP book for experienced PHP programmers I've ever seen. (Wait - this is the ONLY book for experienced PHP programmers I've ever seen!) The author really knows his stuff, and uses best-practices, throughout. Really well thought-out code with a lot to learn from. The fact that it's all based on the new PHP5 style makes it even better! A great way to get to know the new object approach to PHP5: to see it in real-world examples, so that after a few hours with this book it's second-nature. For the first time in three years, I feel wonderfully over-my-head with a LOT to learn here in this one amazing book. Thanks George!
This book introduces and elaborates on very good programming practices that not many self-made programmers are aware of. I've had contact with some 5 or 6 other programming languages at university and I've had my share of contact with good programming practices, but they were never presented to me so clear-cut and in a so motivating way as in this book. That, alongside with the fact that I just love PHP, makes this the absolutely most important book I would recommend to any fellow programmer. This book doesn't teach PHP, it teaches efficiency, maintainability and some really good programming notions. The fact that it uses PHP as a vehicle is just the icing on the cake. The source code used is manytimes from real open source projects, a nice effort from the author. Oh, and I would also like to mention the author's style of writing: he comes across as a very open-minded individual who routinely recognises his own errors and isn't in any way superior to the rest of us not-so-enlightned programmers. On a final note, let me just say I wish my copy of this book would magically turn into a spell-checked hardcover edition :)
Wow, I love this book! Not just because the content is great, but also because the other has his head held high. PHP is fine environment for doing web development and we should be proud, especially with version 5, which this book covers in depth. The book starts with PHP coding patterns, then covers design patterns in the second chapter. This is wonderful because the PHP community needs to understand these principles and embrace them. With PHP 5 we now have support in the tool to build high quality well-architected web sites, and this book points the way right from the get-go. Chapter four covers Smarty. It's a good, though brief introduction. It's still better than that standard documentation. If you don't know about Smarty you should really check it out. It's a great way to separate the user interface from the business logic. Chapter six covers unit testing and test driven design. The coverage is concise and doesn't pander to the reader. The examples are bit abstract. But the section is valuable as an introduction to the topic and to it's implementation with PHP. The book then continues on into truly advanced topics such as extending PHP using the SAPI, web services, caching, performance and profiling and a number of other topics.
George Schlossnagle's Advanced PHP Programming is the superbly organized and definitive instructional guide to developing large-scale PHP applications. Comprehensive, expertly detailed, authoritative, "learner friendly", Advanced PHP Programming is an invaluable addition to any professional quality computer science reference collection.
Frankly, I think others have already said it so I'll keep this short. This book is a well-organized, easy to read compendium of best practices and advanced development techniques for the professional PHP programmer. Anyone who is developing medium to large scale web applications in PHP should read it.
This book has a lot of useful tips and techniques for those who is serious about PHP development beyond basics. Great chapters on PHP scripts performance - both how to make scripts faster and how to troubleshoot them.