tags: apache   archive   business   charity   climbing   comic   communication   database   email   exchange   family   fm2008   hack   hardware   humour   linux   liverpool   microsoft   money   mysql   network   oes   opensource   outlook   php   pictures   process   project   quote   real_life   review   rss   science   security   software   thought   tsm   updates   webdev   website   windows  

(OOP) with PHP5

Mon, 14 Apr 2008 07:43:48

Since the release of PHP4, support for OOP (Object Orientated Programming) has been vastly improved. For those not familiar with (OOP) I offer a general overview. (OOP) is a style in which you structure your code. It differs from procedural programming as everything is grouped as objects. Objects then perform specific tasks within the module. This allows modifications to be made much easier without disrupting the flow of existing code. Another benefit is rapid application development as code duplication is reduced by including common functions already written by the developer or a 3rd party. PHP4 was the first version to really offer (OOP) handling but the implementation was poor in comparison to pure (OOP) languages such as Ruby on Rails. PHP5 has dealt with many of version 4’s inconsistencies and improved the language’s overall object orientated capabilities. Object Orientated Programming with PHP5 helps us understand many of the core (OOP) features within PHP whilst looking at the Model-View-Controller (MVC) design pattern and unit testing.

The author Hasin Hayder is a Zend Certified Engineer (Zend is a framework for PHP) and has 5 years experience working with PHP. This is the 3rd book which he has written and published through Packt Publishing with another one expected out in May this year (2008). Previous books have all contained an element of PHP and in his latest edition, it’s easy to forget he’s only been working with PHP for 5 years. This is the third book I’ve received from Packt Publishing with the intention of releasing a review online.

On the book cover it states being written for beginners to intermediate users and although I have two years experience, I consider myself a beginner. My prior development has been using a procedural approach and was hoping for a better understanding of (OOP) which I could utilise in the future.  Chapter 1 looked like an ideal introduction, “OOP vs Procedural Programming”. I found it difficult to understand as there were no clear indications of the differences. Now I’ve completed the book and re-read the chapter I have a better understanding of what Hasin is trying to say, albeit not very well. For an introductory chapter too much is expected of the reader, unfamiliar terms are used which set a precedence of complication throughout which is not a fair reflection on how the book progresses.  Chapter 2 “Kick starting OOP” does a great deal more for the reader by breaking down an object into its individual components.  The way an object is designed and interacts can be difficult to understand at first, Hasin does a good job explaining the concept allowing a foundation to be set on which the rest of the book is built. Clear and concise is the example as one would hope for such an important chapter.

Chapter 3 “More OOP” was like reading PHP.NET from page to page; we are shown many features but none of the added value one may expect to find in a book. Chapter 4 “Design Patterns” is the beginning of a theme which continues throughout, packing pages with code. Code in a programming book is expected, but there must be a balance between examples and descriptions. Design patterns are key to efficient application development and we’re introduced to many common approaches. Unfortunately I feel much of the valuable information will be lost as readers quickly turn pages trying to escape the aggregation of code which accompanies each pattern.

Chapter 5 “Reflection and Unit Testing” Again too much code used but the E-mail validation example and explanation about ‘Test Drive Development’ are very good. A lot to learn from this chapter and written to help those new to these techniques understand the core principals. It ends by including 10 pages from ‘PHPUnit Pocket Guide’ which was pretty meaningless as the author states himself, the function names are self explanatory.

Chapter 6 through 9 continue very much of the same, a lot of code with basic descriptions. Chapter 7 “Database in an OOP Way” is important and may have been better introduced earlier in the book. If you’re coding in PHP one of the first things you learn, is how to interact with a database. We get an overview of the ‘Data Abstraction Layers’ which are used in the majority of enterprise applications. They are very handy as they save you having to re-write chunks code if the backend database changes. We finish with Chapter 9 “Building a better MVC” which I really enjoyed. The code continues to flow but it’s relevant and very helpful. All major frameworks use the MVC design pattern and here we’re guided through building one from the ground up, including the MySQL table creation. We end with a basic blogging system which is an excellent way for developers to learn these new skills and all the code is available from Packt Publishing once you’ve purchased the book.

The book’s packed with code, more than required to guide you through many of the chapters and better explanations could have been used earlier on. The book may have benefitted from reordered chapters to address the more common uses of OOP first, easing the reader in. Object Orientated Programming with PHP5 is a good reference book with strong chapters on Database and MVC design. You can buy Object Orientated Programming with PHP5 directly from the publisher here

Enjoy
Ryan Partington

php
Visit site