Top critical review
Good book with typical flaws
on April 22, 2003
Wrox Press seem to have become masters at putting together volumes from a large number of authors. This 600-page volume is another example. This way of working does have some drawbacks, there is a little repetition of some basic stuff throughout the book, but not enough to truly detract from it.
The book, after some expository material, details 11 projects of increasing complexity. They use PHP, MySQL, PEAR::DB, Smarty and PHPLib. The target audience, according to the book jacket, are programmers who already have a good knowledge of PHP, SQL Databases and XML. Frankly, I think they overdo the amount of experience you need to use and benefit from this book. If you are on top of all those topics well enough to consider yourself "professional" then this book may be too simple. If, on the other hand, you are, like me, conversant with PHP and SQL but would like to take yourself up to "professional" use of technologies like XML, templating and WAP enabling then this book will be good.
The book is stuffed full of code examples -- and while you can download them in a ZIP file of over 3Mb you shouldn't think of this book as a "cookbook" as such. It shows various methods for performing most of the tasks you need to build solid backend web site systems to deal with a large variety of data. The projects cover importing and exporting of XML, messaging systems, forums, content management, using templates for both HTML and WML, search facilities and both simple and complex content management among other topics.
One thing I did appreciate about this book is how much they left out. No coverage of PHP fundamentals, SQL fundamentals and simple stuff like web forms might be covered once, at most. I certainly didn't need another book on my shelves explaining the basics.
My largest criticism of this book is one shared by too many modern titles for computer programmers; there is too much explanation and too much repetition. The section on SQL is the perfect example. Most projects contain some tables describing each database table, a diagram of the relationships and then the full SQL required to build them, their indices and some example data. For their proposed target audience this is way too much information, and as it is safe to assume that everyone who buys this book has a decent 'net connection, why put a printout of SQL available online in a PHP book? I could have easily written the SQL myself and having it in the book doesn't make it much easier and since it was available online it was a total waste of space.
I also have to take exception to, an (admittedly short) chapter devoted to installing and configuring PostNuke. It gives you no more information on this simple task than the online documentation. As someone who has installed PostNuke a couple of times and never needed any assistance beyond the readme files (and the first was long before I considered myself a good PHP programmer) I felt this was a complete waste of space and not "web development" at all.
My final criticism is once again shared by too many modern titles, there isn't really enough discussion of the design decisions and complications. There are enough code examples and walk throughs to satisfy anyone, but not enough key design decisions are discussed at all, with only a few short examinations of any real design problems. I would have appreciated some walk throughs of such things as code that was too slow, problems with race conditions, methods for mixing static and generated parts of a site and all the real world stuff that intrudes when your site gets slashdotted and that code that was so neat with a hundred visitors a day becomes a thousand. Then show how the code they provide is better, avoids the problems and how to get my code to the same state. Since this book is "professional" a little more real world, please.