Pro PHP: Patterns, Frameworks, Testing and More Paperback – Mar 31 2008
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
About the Author
Kevin Mcarthur is an open source developer, residing in British Columbia, Canada. He is a
self–taught entrepreneur and has been running a very successful PHP application development
studio for more than eight years. His company, StormTide Digital Studios, has worked with
industry in the United States and Canada to provide scaling solutions for web statistics, VoIP,
and print automation. An avid IRC user, Kevin helps to administer one of the largest PHP
support organizations, PHP EFnet.
Kevin’s contributions to open source projects, including the Zend Framework, have made
him a well–known authority in the industry. He has written several articles for PHPRiot.com on
topics such as reflection, the Standard PHP Library, object–oriented programming, and
Most Helpful Customer Reviews on Amazon.com (beta)
I went through any number of online tutorials and "Learn PHP in 24 Hours" books in the beginning and they were fine for "Hello World" applications. But as my need for sophistication rapidly grew, I found a distinct lack of good, readable texts that could function not only as tutorial but as reference as well. I went through a disappointing array of O'Reilly, Manning, Osborne, Addison-Wesley, etc. books, each of which lacked that crucial combination of clarity, accuracy, and scope. Then I happened to chance upon Apress' publication of "Pro PHP Development."
I just finished reading "Pro PHP Development," and when I say I "finished reading" it, I mean exactly that - I read it cover-to-cover. Kevin McArthur has the uncommon talent of writing a technical manual in prose. Unassuming vernacular makes reading easy, instead of the more typical struggle with every idea and re-reading sentences and paragraphs after that "HUH???" experience forces wonder at the author's point and intent. Concrete, concise, and useful examples demonstrate the textual subjects in clear unambiguous source code. And where appropriate and useful, McArthur introduces aspects of PHP 6.0. The coverage of some of the most useful objects in the SPL and the extensive treatment of the Zend MVC Framework is worth the price of admission in themselves.
In summary, "Pro PHP Development" is right up there with the finest technical literature I've read and has earned a place on my bookshelf (lesser texts get relegated to eBay). It's a keeper. Until the next edition!
One common technique I use when looking at a book I am thinking of
buying is to flip through to a dozen or so random pages and read a
paragraph or a bit of whatever is on that page. If most of these chance
peeks reveal something interesting or useful to me, then I figure I'll
probably get enough out of the book to make it worth buying. I did that
with this book, and found plenty of interesting stuff. However, in the
reading of the book I was a bit disappointed.
First, the bad:
The book attempts to cover too much for the number of pages. The Title
is clear enough, but the subtitle ("Patterns, Frameworks, Testing, and
More") coupled with the introduction, which states "In this book, you
will learn how to make the most of your PHP programming, from a detailed
understanding of OOP theory, to frameworks and advanced system
interoperability" promises a great deal more than what the book
delivers. For example, the "detailed understanding of OOP theory" is
provided by a 7-page chapter on "Abstract Classes, Interfaces, and
Programming by Contract" and another chapter covering static members.
This is sufficient to describe a little about the mechanics of OOP in
PHP, but it's a stretch to call it even an introduction to the theory of
OOP. Pretty much the same can be said for the coverage of Patterns,
Frameworks, and Testing. I am not exactly sure what "advanced system
interoperability" is, I assume the author is refering to web services
which is covered to some degree.
To me, the book seems disjointed, and more like a collection of magazine
articles than a cohesive book. There is unevenness in the level of
coverage from topic to topic. Some chapters are thorough enough to be
considered complete, or at least a good introduction, such as the
chapters on Exceptions and Reflection, and all of "Part 3, The Standard
PHP Library". Each of these chapters would make a nice article. Others
contain a bare introduction, like the "Testing, Deployment, and
Continuous Integration" chapter. In some cases, there isn't enough
information to even consider it an introduction (such as the chapter on
AJAX and JSON.) It probably would have been better to replace these
chapters with more coverage of one of the other topics. Particularly,
for example, there is a chapter on what is coming in PHP6. It seems
very out of place and this sort of info can be easily found by a web
Now, the good:
Kevin McArthur writes cleanly and I found everything easy to read and
understand. He is obviously very knowledgeable about programming in PHP
and presents his ideas clearly. I learned a lot from the topics that
were sufficiently covered (such as the chapters on Exceptions,
Reflection, and the SPL.) I feel that there was enough substance to get
me started on these topics.
Additionally, I like Kevin's "Just the Facts" synopsis at the end of
each chapter. In a paragraph or two he summarizes what was just
presented in a very succinct manner without any of the fluff or filler
we so often see in the typical programming book (like the "what's coming
in the next chapter" blurbs: I find that I can easily turn the page to
see what is "coming"!) Similarly, I enjoyed most of his chapter
introductions - he did a good job of describing what he was going to try
Should you buy the book?
"Pro PHP" wouldn't be my first choice for a "PRO" level PHP book, but I
got enough out of it that I don't regret having read it. How is that
for a good sound bite?
Two such examples of this in Pro PHP that helped me are array overloading with the ArrayAccess SPL class and the observer pattern using SplObserver and SplSubject. Firstly, ArrayAccess allows you to access objects (such as reading and writing) as you would with an array. One such example of this is in the PHP SimpleXMLElement class. Secondly, using the observer pattern allows one object to monitor the state of another object and react to these changes as desired. Kevin describes these to the reader and provides solid examples of using them.
An interesting aspect of this book is the chapter dedicated to PHP 6. Although a stable version has not yet been released, Kevin covers the key features that we can look forward to such as namespaces, late binding and native Unicode support.
The other thing that I like about Kevin's style and methods are that they are fairly similar to my own, meaning for the most part I agree with his methods and therefore recommend them to other users as well.
On the whole I would have two minor complaints with this book. Firstly, there is a lot of "conceptual code" rather than practical real-world examples. Having said that, there are so many different ideas in this book that it would be difficult to fit longer examples for these ideas. Secondly, I would've liked to see some more extensive coverage of the Xdebug module. This is a module that I try to use but I feel like I am under using its potential. It is great that Kevin covers it in Pro PHP, but I would've liked to see some slightly more advanced usage for my own benefit.
In summary, I would definitely recommend reading this book, especially if you have been slow to transition from PHP 4 to PHP 5, or if you use PHP 5 but know you don't take full advantage of its Object Oriented Programming features.
For example, the book collectively describes about phpdoc, phpunit, xdebug, as well as subversion, phing, and xinc. The examples and steps provided in the book allow the reader to follow through relatively at ease. Nevertheless, the reader may want to know that all install and setup described in the book are based on Linux environment.
In the chapter of Reflection API, the reader will get a chance to study some use cases about this advanced extension that normally only java or C# programmers could enjoy through their build in language features today. The chapters about Standard PHP Library (SPL) give the reader the ideas of how to apply OOP libraries for php programming. For instance, instead of using a set of low-level file manipulative methods, the reader now might think about using SPLFileInfo object to represent and access file info. The book also covers some design techniques on php such as exception handling, MVC paradigm, and a few design patterns, which are informative.
The topics of Zend framework and Web 2.0 including ajax, web services, soap, and certificate authentication, provide a good entry point for those who want to know how to associate php to web design architecture and how php play its role within web deployment.
For about 300 pages, this book covers a lot of info. The topics are explained in a clear and straightforward manner for easier read. Additionally, the reader may find the writing is pretty concise in general and still leaves room for the reader to further investigate the issues outside the book. The companion download-able source code from the website is as expected and helpful.
Needless to say, some sections could be better organized. The Part 1 OOP and Patterns only list a few out of many common regarded patterns and OOP ideas, and other Parts of the book also mention some other patterns along their ways.
Overall, this book deserves a score 8 out 10 and should be as an eye opener and handy for those who like to see some advanced php subjects demonstrated in one place.
I bought this book primarily as an extension to my training I got in another Apress book "PHP: Objects, Patterns, and Practice". This book is smaller than that one, has huge overlap with 'Objects, Patterns, and Practice' - and where it overlaps, it's the weaker book. The topic coverage is extremely disjointed, and while not particularly difficult to follow in individual sections, does not seem made for actually reading from cover to cover.
It is maybe enough of an intro to a number of different topics that one could use it as a guide to which keywords they should plug into a search engine in order to find a more thorough article (or perhaps a better book). And again excepting for its treatment of the SPL, it is not quite sufficient for use either as a tutorial nor as a standalone reference manual.
I would advise those considering this book based on its title, to instead get PHP Objects, Patterns, and Practice, Second Edition by Matt Zandstra, along with possibly PHPUnit Pocket Guide (Pocket Guides) and Zend Framework in Action by Allen, Low and Brown.
Look for similar items by category
- Books > Computers & Technology > Computer Science
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Testing
- Books > Computers & Technology > Software
- Books > Computers & Technology > Web Development > Programming > PHP
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Object-Oriented Software Design
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering