Most Helpful Customer Reviews
|
|
2 of 2 people found the following review helpful:
4.0 out of 5 stars
Rather good, but could be much better., 2 May 2008
If I hadn't read in the Author's Profile at the start of the book that Hasin is from Bangladesh, and that English is in all likelihood not his first/native language, I would have realised that he does not have a fluent grasp of the English language anyway and this detracts from being able to focus on what he is trying to communicate.
Putting the aspects of Hayder's grasp of the English language aside, the book is rather good as an introduction to the various technologies that it covers. If you're already up to speed with OOP then you mightn't want to bother with the first few chapters; but after that the book covers phpunit testing, design patterns (Hayder uses the Patterns chapter to introduce MVC and later devotes an entire chapter to it), SPL and PDO.
I got a stunning feeling of deja vu when reading the main OOP chapter: it seemed very reminiscent of the online php manual and user contributed notes at php.net - a resource which Hayder makes the occasional reference to.
The book's section on phpunit testing is rather good as an introduction to that concept; though it does conclude with ten pages of text from the PHPUnit Pocket Guide by Sebastian Bergmann. I have to question the rationale behind this: PPG is available freely online and I think mentioning the website for that version of the book would have been a better thing to do.
I think I will definitely be picking this book up rather often for reference and that it is worth the money (that I admittedly didn't have to pay).
But what would I do to make the book even better than it already is?
1. I was expecting some coverage of UML for representing classes and interactions between them - not a lot but just enough to be useful.
2. Avoid mentioning topics that are outside the scope of the book - it makes the content appear weak and less comprehensive than it is. I'd simply have a "recommended reading" section or appendix at the end of the book.
3. This may seem petty but it's actually quite important, especially as regards the environment - don't place braces in the example code on seperate lines. It doesn't matter as much when on screen but when printed out that's a lot of wasted paper/trees.
|
|
|
2.0 out of 5 stars
...Lacking., 31 Aug 2008
Unfortunately this book fails to deliver as a handy reference tool, or even a useful textbook for the following reasons:
- The content is very poorly written; I know the author is not English, but surely editors are involved in book publishing? Grammatical errors are frequent and can throw concentration. Reading this book is often akin to reading the many poorly written tutorials on the Web - and I don't spend money on books for writing quality like this.
- The code examples are horribly laid out - often spanning multiple pages and line breaking in awkward places.
- I have copied some of the code from the book and found bugs or inconsistencies and typos.
- The author attempts to give "real-world" illustrations of uses for PHP OOP but fails to provide a consistent scenario. The examples are short and often given within a foreign context, so the reader must often take a guess at how one would implement the given illustration in their own work.
- Explanations are often short and barely useful. The author will skim a concept, give a code example [frequently lifted from the PHP manual], and then provide a poorly constructed sentence to summarise. The author often assumes that you will take this snippet of information and then go off and do your own [possibly extensive] research.
This book was not worth the money in my view, and I would urge others to perhaps check other resources before spending money on what is essentially a collection of net tutorials.
|
|
|
0 of 1 people found the following review helpful:
3.0 out of 5 stars
Strong chapters on Database and MVC design, 21 April 2008
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.
|
|
|
Most Recent Customer Reviews
|