PHP: The Good Parts

Author: Peter MacIntyre
Publisher: O'Reilly
Pages: 176
ISBN: 978-0596804374
Aimed at: PHP programmers who are neither beginners nor advanced
Rating: 2
Pros: Some interesting insights
Cons: Often shallow or confusing
Reviewed by: Ian Elliot

Does this very slim book cover enough ground at sufficient depth to warrant the title "The Good Parts"?

PHP is a very strange language - not quite as strange as Javascript but strange enough. This PHP book borrows from the idea first introduced in Javascript: The Good Parts where an expert on Javascript explained its clever features and how to use them with an emphasis on the inner workings. If this leads you to believe that this is a PHP equivalent think again.


PHP The Good Parts is more an introductory book than an intermediate or advanced book. However, it isn't really suitable for the beginner because it's a sort of ramble through bits of PHP that the author seems to think are important or strange or ... well I never did manage to figure out the reason for inclusion or the logic behind the book.

There are also lots of places in the book where the treatment of a topic is so shallow as not to really be an accurate reflection of the situation. For example, the section on cookies and session state management doesn't really give you any idea what is going on. It doesn't, for example, distinguish between maintaining state between or with a session. It also doesn't point out that session state is most often implemented using cookies.

This is a very slim book and frankly it doesn't cover enough ground at a sufficient depth to warrant the title "The Good Parts".

Chapter 1 is an overview of the history and use of PHP. Chapter 2 is a basic primer on PHP - variables, control statements etc. plus a little about working with web pages. Chapter 3 is about functions and really misses a lot of good stuff. Chapter 4 and 5 are about strings and arrays and do nothing that the documentation or any introductory book on PHP doesn't. Chapter 6 introduces objects and here you might expect some clever stuff - but no it's still plodding on. 

From here the book moves into wider topics - database, email, PDF generation and PHP security. All treated in a very shallow way. Chapter 10 is on PHP 5.3 but its just a retelling of the manuals take on closures and name spaces. Chapter 11 deals with regular expressions, XML and suitable IDEs.

The appendix lists PHP bad parts - the goto, loose typing and a few other things. If this is all the bad the author can find then he hasn't been digging deep enough - there are some very messy bits in the PHP language that are forced upon it by its loose typing and having objects tacked on later. For example the simple fact that all functions are global - see PHP inner functions and closure for example - perhaps O'Reilly should have got Alex Amstrong to write the book.

The big problem with this book is that it simply doesn't live up to the promise of showing the reader the good parts - it really isn't selective, it isn't deep and it doesn't explore any of the nooks and crannies of PHP where the good and the bad might be lurking.

If you want a slim book to read as a refresher course on random bits of PHP then you might not be as disappointed in this book as I am. It certainly isn't in the same league as Javascript: The Good Parts which is a terrible shame because PHP does have really good and really bad parts if you know where to find them.


App Inventor 2 Essentials

Author: Felicia Kamriani & Krishnendu Roy
Publisher: Packt Publishing
Pages: 246
ISBN: 978-1785281105
Print: 1785281100
Kindle: B017XSFL00
Audience: Anyone who wants to make an Android app
Rating: 4.5
Reviewer: Ian Stirk

This book aims to teach you how to create Android apps usi [ ... ]

How To Create Pragmatic, Lightweight Languages

Author: Federico Tomassetti
Publisher: Leanpub
Pages: 370
Audience: Beginning but aspiring language engineers
Rating: 4
Reviewer: Nikos Vaggalis

A book that makes language design and compilers construction accessible.

More Reviews


Last Updated ( Monday, 23 August 2010 )