Rating: - Do not buy this book
Do not buy this book. There are so many script examples in this book that do not work, let alone there are many weak and sloppy algorithms and code logic structures the author introduced. If you already bought this book, see his script example in Chapter 13 (A Sample Authentication Implementation), try to read line by line in his Cookie class example, can you find any flaw? Well, there are many them in this tiny/simple class, but i can just ignore and pretend to think that the author did not have enough time to test his own scripts before he put them in his book...but the algorithm/logic structures of the codes that bothers me! Weak algorithm, bad code control structure can lead to a buggy application that is not easy to debug!
Rating: - Good INTERMEDIATE Book
Note:
Beginning PHP programmers will be lost. Start elsewhere.
Intermediate PHP programmers will learn a lot regarding technical details and good coding and design practices, but not enough to advance them to the level of 'Expert PHP Programmer'.
Expert PHP programmers should know most of the technical details found here, but they will likely learn a bit about good coding and design practices.
For beginners: *
For intermediates: ****
For experts: **1/2
I am an intermediate PHP programmer, so this book was perfect and extremely helpful for me. I can say that I was very impressed by this book for a few reasons. For one, it provides a nice overview of many useful topics (many of which are not exactly "advanced") such as object-oriented programming, error handling, templates, unit testing, caching, authentication/security, session-handling, remote procedure calls, performance analysis, and writing extensions. However, they are mostly just overviews. It gives the reader a good starting point regarding the various topics and introduces less experienced PHP programmers to the various topics which they may not have been concerned with formally. Unfortunately, even for an overview, a few of the sections were a bit too slim. Object-oriented programming was only touched on and some important topics related to object-oriented PHP were omitted. Also, remote procedure calls received so little attention that they might as well have been omitted. Other sections do a better job. The benchmarking and profiling sections were quite informative as were the sections on error handling (sort of) and unit testing. They aren't comprehensive, but I know that I personally learned quite a bit even though I eventually had to seek out additional references. Regarding the various "advanced" PHP topics, the book is basically a jack of all trades, master of none. The book deserved to either be longer, split up into more than one volume, or it should have had a smaller scope. Still, it does a good job at providing an intermediate PHP programmer with plenty of introductory information on these "advanced" topics. It won't make you an expert PHP programmer, but it will set you on the right path.
There are two main reasons that I liked this book: the clarity of explanations and examples and the strong emphasis on good programming and design practice. Nowhere in this book did I ever feel close to being lost and I can say that the author does an outstanding job at describing the concepts and he chooses good, fairly simple examples. Also, good practices are strongly emphasised through this book. Unfortunately, good practices and technical details are often treated separately in many books if good practices are covered at all. Here, the author never loses sight of this. Even when he gets into the dirty details, he constantly reminds the reader that some paths to the same goal are better than others and he clearly explains why. For this reason, I would even recommend this book to expert PHP programmers who probably already know most of the technical details, although the book is most useful for intermediate PHP programmers like myself.
In summary, this book is best for those who know the basics of PHP but are not yet experts. You will learn just enough technical details to prepare you for the next level even if this book won't take you to that level. Also, this book will help almost anyone write cleaner, safer, better-designed programs, expect for beginners who would not be able to follow the examples and topics.
Final note: GREAT value.
Rating: - A must read for intermediate level PHP Programmers or above
This is a hefty tome, weighing in at 650 pages chocked full of great information about advanced PHP programming. The book is divided into five sections each with several to many chapters. The sections are Implementation and Development Methodologies, Caching, Distributed Applications, Performance, and Extensibility. Where appropriate sample applications are developed to present a point, in other situations a higher level approach is taken.
Covered within various chapters are topics like Error Handling, Unit Testing, Computational Reuse, Session Handling, Benchmarks, Profiling, and detailed information on how the Zend Engine works. While I've used or learned about several of the topics covered within, I think I learned something (whether it was a new approach, completely new information, or a refinement to what I already believed) in every single section.
Ultimately, I think I will become a better PHP programmer for having read this book.
I will be recommending this book to all my friends, and basically to everyone of an intermediate skill level with PHP or above. My friends are going to need to buy their own copy though, as I will not let this one out of my sight.
Rating: - Nice Survey Book / Not Great
I agree with other reviewers that this is a survey or concept book. Schlossnagle is a bright php programmer but a lousy teacher. Do not buy this book if you are hoping to learn 'Advanced PHP Programming' from it. This book is too superficial in it's coverage of the many subjects. Ie: Schlossnagle's coverage of Object Oriented Programming is less than six pages (why bother?), and does not adequately cover the basics.
This book is good for introducing you to things you may not have thought of before. Ie: I liked the section on exceptions but found it too brief and assumed too much. I was therefore forced to read other materials, including the official php manual, before I had a real grasp of exceptions.
Larry Ullman does a much better job of explaining subjects. His PHP Advanced for the www (first edition) is an excellent book to actually learn from. Unfortunately it is a little dated and the second edition is still a couple months away.
Do yourself a favor, spend your money on another book if you are intending to actually learn 'Advanced PHP Programming' from a book.
Rating: - The Elevator from the Intermediate Level to the Professional Level
Read on if you are:
- Used to PHP programming, but not a very sophisticated programmer.
- Looking out to do more programming on a higher level.
- Ready to read through book texts three times and to read further material that is not included in the book you buy.
Schlossnagle's book is not written along one red line, it covers various topics and allows jumping around quite freely. However, the topics that it covers are highly efficient in helping you advance with your programming skills. They might not quite be what you'd expect from a PHP book, because actually Schlossnagle covers anything that is needed to work with PHP on a professional level.
Consider this list of topics:
- Write clean code
- OO-Design Patterns
- Project documentation
- Performance tunings
This is all not really PHP-only stuff, but it is a great source of inspiration and furthers the understanding of programming in general very much. The latter I find is necessary for everybody who's up to something bigger in PHP.
The PHP examples in the book are - I have to admit - maybe sometimes rather scarce. One would like to see more applications of abstract problems, more examples. But is that what a book is for, to give examples?
I don't think so. For me a book is mainly a source of great ideas from great programmers, anything else is available on the web.
After having bought "Advanced PHP Programming" I purchased other books, the topics of which I would not have considered without reading Schlossnagle's work. I'm just about to write a diploma work and the book is a great reference for anything concerning PHP and development projects.
|