From Barnes & Noble
The Barnes & Noble Review
What words come to mind when you think of PHP? Easy? Convenient? How about “enterprise-ready”? Object-oriented PHP5 can hold its own in projects where you might otherwise use Java, C#, or C++. So far, few PHP programmers are making the most of all that power. Be one of them -- with Professional PHP5.
This book’s authors are pioneers in enterprise PHP development: one is building an ERP system with 300,000-plus lines of object-oriented PHP code. Software like that demands thoughtful design, careful architecture, and best-practice coding: exactly what this book teaches.
Part I introduces PHP5 objects, laying the groundwork both for experienced PHP programmers who are new to object-orientation and longtime object-oriented programmers working with PHP for the first time. Right upfront, chapters on UML modeling and design patterns tell you: This is not your father’s PHP.
Next, the authors walk through PHP’s growing “toolkit” of reusable objects and object hierarchies that make it far easier to build industrial-strength software. The first group are relatively simple: collection classes, generic objects, database abstraction layers, logging and debugging tools, and a built-in SOAP interface for XML-based communications. As your comfort grows, you move on to components for simplifying authentication, performing unit testing, even constructing Model/View/Controller applications.
A section-long case study uses these components, while covering issues that range far beyond coding: requirements, architecture, extensibility, scalability, project management. The authors even show how PHP5 fits with both agile and conventional methodologies. No, you haven’t strayed into a J2EE or .NET book: This is today’s PHP. Bill Camarda, from the January 2005 Read Only
From the Publisher
What is this book about?
With the release of PHP 5 and the Zend Engine 2, PHP finally graduates from it earliest days as a lightweight scripting syntax to an powerful object oriented programming language that can hold its own against the Java and .NET architectures that currently dominate corporate software development. This book has a pragmatic focus on how to use PHP in the larger scheme of enterprise-class software development.
What does this book cover?
Unlike Java or .NET, there is little discussion of the application of design patterns, component architectures, and best-practices to the development of applications using PHP. Software written in the absence of this sort of higher-order architecture will never be able to match the robust frameworks that Java and .NET ship with out of the box. This book addresses this issue by covering the following material:
Part 1 discusses the OO concepts that were initially explored in Beginning PHP 5 and a demonstration of how to implement them in PHP 5. This section also covers UML modeling and provides a brief introduction to project management techniques that are covered in more depth in Part 4.
Parts 2 and 3 present objects and object hierarchies that, when completed, comprise a robust toolkit that developers will be able to reuse on future projects. These chapters are designed to arm the professional PHP developer with the sort of constructs that are available out of the box with platforms such as Java and .NET — from simple utility classes like Collection and Iterator, to more complex constructs like Model/View/Controller architectures and state machines.
Part 4 shows how to usethe toolkit from Parts 2 and 3 to create real-world applications. We look at the development of a robust contact management system that will leverage the componentry and concepts already discussed and introduce project management and software architecture concepts that enable developers to accurately identify business requirements, design scalable, extensible platforms, and handle change management effectively. It covers the waterfall and spiral project management paradigms and include a discussion on eXtreme Programming and other approaches to software development.
The Appendices include an extended discussion on the effective use of CVS, introduce the Zend Studio IDE and related tools, and discuss performance tuning and scalability.