Both a primer and a reference, this book is a must-have for anyone who wants to program in PHP.
After developing Web solutions for the iSeries in Net.Data and then getting a sour taste from Java, I wanted something better. PHP was certainly the right choice, but making it run on an iSeries at the time was no small feat. Then Zend came to the table, and the rest, as they say, is history. There is no way any of us on the ground floor of this amazing union could have anticipated this level of excitement and interest. We continue to see huge numbers being drawn to PHP on IBM i as well as Linux, UNIX, and Windows. And this book comes at just the right time; it's both a primer and a reference.
I was so excited to see this book that I didn't know where to start. Knowing that many RPG and COBOL developers struggle with the realm of object-oriented development, I went there first. I wanted to see how authors Kevin Schroeder and Jeff Olen would handle working this topic into the typical RPG developer's lexicon. Needless to say, I was not disappointed. Even I struggle with OOP, but between Chapter 7 and the PHP language itself, I now feel a lot better about tackling assignments that make use of OO principles and am more inclined to move in that direction. Still, it's nice to know that the procedural model is alive and well and covered nicely in Chapters 1-5 as well as exhibited in several examples.
Starting off with an assumption that the reader has little to no experience with PHP, each chapter in the book builds upon the last in an easily digestible manner so that, regardless of your skill set, you will be able to jump in and keep moving forward. Even if you have been playing with PHP, you will still get a lot from the way i5 concepts are covered in painstaking detail. Unlike a lot of other texts, the authors stick to the facts and deliver a discussion about PHP devoid of technical posturing. The exhibits are plentiful (and are not copied from the PHP.net Web site), so I now have a new set of examples to understand the basic and not-so-basic principles of PHP.
For years, I worked with DB2 on IBM i as if it were the only database in existence. Manipulating stream files was done through complex APIs and CL commands that were fraught with challenges. Chapter 6 goes into detail about how easy it is to work with these files, and I found the examples quite useable. Accessing stream files is something the typical PHP developer does on a regular basis. The examples in this chapter do a good job of bridging the gap in my mind regarding the differences between the relational world and that of simple file structures. The use of FTP wrappers demonstrates the basics of accessing stream files on other servers, making remote file access a simple task.
A lot of the open-source code on the Internet is located in places like SourceForge and Hotscripts.com. The overwhelming majority of these applications use MySQL as a database. While MySQL has been supported on IBM i for quite some time, Chapter 8 delivers useful information by showing simple and practical examples of how to work with the world's most popular database on IBM i. One of the pleasant side effects of absorbing the PHP examples here is the unadulterated use of SQL for not only database access but also object creation. This is the first text that really addresses the need to help an old IBM i greybeard like me implement and use MySQL.
And as if that weren't enough, two other sections explain Zend Studio and Zend Framework. Zend Studio, the premier PHP IDE, provides the best PHP development experience for IBM i. The basic functions of code completion and i5 integration are enhanced through a thorough discussion of PHPDocumenter and advanced debugging with the Zend Debugger and Profiler. Once comfortable with the IDE, I really enjoyed the discussion about some of the more popular frameworks. The brief but healthy discussion of these frameworks concludes with an in-depth examination of Zend Framework.
If I had one complaint about this book it would be that, despite its jam-packed 376 pages, it's still too short! Nonetheless, there is plenty of meat for this barbeque, and it tastes mighty fine! This book is a must-have for any IBM midrange shop working with PHP or considering using PHP to develop mission-critical applications. It delivers an honest discussion of technology from a couple of guys who "get it," and I'm happy to add it to my bookshelf. But it won't be up there much, as I will be referring to it often.