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?
- I was expecting some coverage of UML for representing classes and interactions between them – not a lot but just enough to be useful.
- 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.
- 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.