12.30.2013 | Tagged as Model-View-Controller PHP
Packt Publishing did ask that I review this book. However, everything expressed in this post is in my own thoughts and opinions.
Learning FuelPHP for Effective PHP Development by author and developer Ross Tweedie is really a comprehensive tutorial. It covers the basics of FuelPHP development, while walking you through how to use many of the auxiliary tools that are part of the modern web programmer's life. It starts with setting up your development environment, then it touches on the core precepts of MVC, and finishes up with a fun demo application that enforces much of the material covered. I would recommend this book to any PHP developer looking to learn a solid framework like FuelPHP.
Tooling and Best Practices
Although some of installation and setup tasks described in this book are well-tread ground for me, I still found their thorough instructions helpful. Chapter 2, Installation, goes into great detail complete with code examples of how to properly set up your development environment, and describes the how and the why to use a code repository, specifically Git. It also shows the reader on how to manage Git and the various configurations of your project's environments — from dev to staging and production. These are standard best practices I would expect every programmer to pick up and maintain.
One of the best ways to learn is by doing. And, Chapter 4: Demo Application, leads you through just that. It's great because it solidifies many of the concepts discussed earlier in the book, and providers the reader with the fun of building a functional WordPress-style blog application.
There were several key concepts enacted in this demo. The first was how to relate your various Models together so the Fuel's ORM can properly auto-populate its data objects. For instance, it shows the reader how to associate posts with the user account authoring the story. Another concept described is the Ruby-on-Rails style scaffolding command. It helps reduce the amount of structural code in the models, controllers and views that programmers need to write, and quickly provides the dev with a functioning application.
I think the book is somewhat limited by its length. At 88 pages, the author can only go into so much depth regarding each of FuelPHP's features. Also, though MVC is a ubiquitous design pattern, I think a more thorough explanation of it's benefits verses a traditional PHP web application would be important knowledge for a junior developer. And, as trends go in the web development world, it would've been nice to see an example of using the REST controller to build an API, and a deeper look at integrating FuelPHP with a SPA client layer.
In review, "Learning FuelPHP for Effective PHP Development" is a well-written and comprehensive introduction to the FuelPHP platform. It has clear instructions on how to set up your development environment; efficiently building the application; testing it and deploying it to your production server. It's a solid primer to get up and running using this PHP5-based framework.