Ed Lecky-Thompson, Heow Eide-Goodman, Steven D. Nowicki, Alec Cove
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 use the 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.
Table of Contents:
PART I: OBJECT-ORIENTED SOFTWARE DEVELOPMENT.
1. Introduction to Object-Oriented Programming.
2. Unified Modeling Language (UML).
3. Putting Objects to Work.
4. Design Patterns.
PART II: CREATING A REUSABLE OBJECT TOOLKIT I—SIMPLE CLASSES AND INTERFACES.
5. Collection Class.
6. CollectionIterator Class.
7. GenericObject Class.
8. Database Abstraction Layers.
9. Factory Interface.
10. Event Driven Programming.
11. Logging and Debugging.
PART III: CREATING A REUSABLE OBJECT TOOLKIT II— COMPLEX (THOUGH NOT COMPLICATED) UTILITIES.
13. Model, View, Controller (MVC).
14. Communicating with Users.
15. Sessions and Authentication.
16. Unit Testing Framework.
17. Finite State Machine and Custom Configuration Files.
PART IV: TEST CASE: SALES FORCE AUTOMATION.
18. Project Overview.
19. Project Management Methodologies.
20. Planning the System.
21. Systems Architecture.
22. Assembling the Sales Force Automation Toolkit.
23. Quality Assurance.
25. Designing and Developing a Robust Reporting Platform.
26. Where Do We Go From Here?
PART V: APPENDICES.
Appendix A: Why Version Control Is a Good Thing™.
Appendix B: PHP IDEs.
Appendix C: Performance Tuning PHP.