PHP Object-Oriented Solutions Paperback – Aug 21 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.
To get the free app, enter your e-mail address or mobile phone number.
About the Author
David Powers is an Adobe Community Expert for Dreamweaver and author of a series of highly successful books on PHP, including PHP Solutions: Dynamic Web Design Made Easy and Foundation PHP for Dreamweaver 8. As a professional writer, he has been involved in electronic media for more than 30 years, first with BBC radio and television and more recently with the Internet. His clear writing style is valued not only in the English-speaking world; several of his books have been translated into Spanish and Polish. What started as a mild interest in computing was transformed almost overnight into a passion, when David was posted to Japan in 1987 as BBC correspondent in Tokyo. With no corporate IT department just down the hallway, he was forced to learn how to fix everything himself. When not tinkering with the innards of his computer, he was reporting for BBC television and radio on the rise and collapse of the Japanese bubble economy. Since leaving the BBC to work independently, he has built up an online bilingual database of economic and political analysis for Japanese clients of an international consultancy. When not pounding the keyboard writing books or dreaming of new ways of using PHP and other programming languages, David enjoys nothing better than visiting his favorite sushi restaurant. He has also translated several plays from Japanese.
Inside This Book(Learn More)
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
There are some basic examples in Chpt 2, but there needs to be a smoother transition from those to the intense, tangled complexity of the other chapters.
So in all honesty, I cannot recommend this as a "gentle introduction" to the PHP OOP world. It is more like dropping you into the deep end and hoping you learn to swim. I would love to see a book that starts with a simple, basic class and then extends it through subsequent chapters, while introducing OOP theory along the way. I did not like how all the theory was crammed into one VERY dense chapter at the beginning of the book (chpt 2).
Having said all that, I think if you approach this book as a "solutions" book more than a "gentle introduction" it has some great benefit to those who are able to comprehend the level of complexity and make use of the classes offered. Certainly this is evidenced by the many positive reviews here.
For me, however, it got too complex, too soon. I am still looking for that "gentle introduction". If anyone knows a more basic book on the subject, please let me know.
Good constant level of complexity; not too abstract, not too easy, but something to put your teeth in, sweat a little, but in the end come to a good understanding of the subject without frustrations.
There are many examples following the to the point explanations. It's always a challenge for an author I guess to address the reader at a good adequate level to hold his/her attention. Knowing where the bottlenecks are. Giving a concrete example when it start to become abstract. Offering meaningful cases. The author does al that!
This book is a real must for anybody who wants too start learning OOP from the beginning, although it's recommendable to know a good deal of (procedural) php when starting with this book.
I've read 7 out of 9 chapters. Chapter 8 and 9 are in the back burner for now, not because it's boring, but I think it's more optional or things to learn later. My background is C/C++/VHDL/MIPS/ and whatever else I forgot to mention.
Codes in the book works!
Almost all of it. There's a small typo on page 159, the code assign a value to an array without specifying the index, so I believe that rewrite the array. Checking it with the source code, which you can download from the website, the author actually have something different. Anyway, took 3 hours to debug 300 lines or so, learned to debug better yay. There are so much codes in the book, that it gives you chances to practice the OOP that the author is trying to teach you, and it's very applicable to real world coding.
Tone and pace:
The tone and the pace the author goes throughout the book is straight forward. Whenever he skipped something he would state that you should have learned it or go research it (the regular expression functions), which is understandable because this isn't a "let's teach you php as if you know nothing about it."
You learned to extend/inherit the php's offical date class. Learn how to extend the exception library, neat. You basically learn how to extend and customize php built in libraries or create a class to wrap php functions, facade pattern, and make it tailor to you, so that you can reuse it in your next project, and make your life easy. OOP, ahh such a beautiful concept.
The last three or so chapters are more advance, XML, SPL (standard php library), RSS, and such. What really sweet is the later chapter reuses the classes that you've code in previous chapters. So it shows the strength of OOP (reusability) and such.
On page 195, it's out dated the function does return a message so the if else statement isn't needed but meh.
On page 239 regarding XML namespace, since php 5.3 came out is there another way to do it? Shrug, it doesn't matter that much the way the author does it in the book currently isn't that bad. I wish the author spent his time talking more about the concept of namespace. I ended up googling that.
Oh, the clone subject is mention but isn't use in real world coding. That's a complaint I guess. I wish there was a least a 300 lines code project with the clone keyword in it. I believe it was only mention once about dvd and whatnot code. Oh well. Maybe it's in the last 2 chapters?
Oh debugging is always fun. On the date class when I had to reuse my date class for the XML chapter, the date output had the day and the month together without a space in between it. Ugh... had to debug that 400+ lines -_-. Learned to start debugging all output functions first haha.
Coding Standard and Documentation:
What's also nice is there's a coding standard, the Zend Framework coding standard, so if you don't have a coding style yet, at least you got one now. The phpDocument is pretty sweet, teaches you to document your code so other people can read it. Anyway, the installation of phpDocument isn't exactly there, so google it.
This is THE book where I've learned OOP for PHP. It's a great book and I enjoyed it a lot. No book is perfect but this book set out to teach you something, and it does that well enough to get almost ALL of the points across to ya. I recommend this book to any one that knows PHP but knows nothing about OOP. If you want to make your life easy, have maintainable codes, and reusable codes, this book will teach you it.
Update July 19, 2010:
Basically teaches you how to emulate multiple inheritance with interfaces.
You end up extending a class and at the same time implementing two interfaces (countable & iterator).
-The closing xml tag code explanation could have been better if the author refer to it being similar to a "stack". The most current XML element tag you created is the first thing that you close.
-The last test code to test out your class work or not will always output, "A problem occurred." Because the flush() function returns nothing! It's not in the errata page. A little tweak and you can have it return a bool flag if you wanted to. This isn't reported in the errata page and you can see it's an error because the official source code will do the same thing.
-Even though the author had you implementing the countable interface you don't use it at all. You can however test it out yourself. Just apply the class instance to the function .count(). So it's not that big of a deal.
Anyway, I actually found the errata page. I have to say then most of the code works if it didn't then it's either syntax or the elusive logic error.
PHP Object-Oriented Solutions is a good bridge from procedural to oop methodologies. I found there was enough context and a focus on practical examples to illustrate the principles without it seeming too theoretical. For me the progression of topics from basics to more advanced topics allowed me to get started using what I'd learned in just a couple of chapters. By putting the simple stuff into practice it helped build the contextual foundation for more advanced topics.
This book has gotten me out of my old comfort zone and producing php objects I can use over and over, extend and enhance.
If you are a novice programmer or just dabbling in php this might not be the best book. It presumes some experience and for the experienced programmer builds a procedural to oop bridge. A novice programmer may find this book difficult to understand as it assumes a working knowledge of php and programming in general.
For teaching this "old dog" new tricks PHP Object-Oriented Solutions gets 5 stars from me.
Look for similar items by category
- 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 > Web Development > Programming > PHP