A while ago I advertised for readers wanting to review a number of books I was offered by Packt Publishing. There was quite a bit of interest and I had to randomly select three readers to receive one of the books. The third reader to get a review published is Robert Parker, who has read Learning Joomla! 1.5 Extension Development.
Review of “Learning Joomla! 1.5 Extension Development” by Joseph LeBlanc
Review by Robert Parker
Having been a “long time” Joomla! user (I used Mambo before the Mambo development team created Joomla!), I was excited to see this book make it into print. The recent release of Joomla 1.5 (Stable) brings to fruition many months of work toward making the Joomla! development environment more powerful and easier to use than ever before. While many, possibly most, Joomla! users find all the functionality they need in the Joomla! core and the many extensions made available by the community and third-party developers, one of Joomla!’s greatest strengths is its extensibility. This extensibility has for the most part, been primarily of interest to accomplished programmers who are able to “grok” the way Joomla! works internally, and the barriers to creating extensions for “casual users” or beginning programmers have been significant. Granted, there are many tutorials and resources available on the web to help surmount these barriers but, until now, there has not been a book dedicated to making some of this extensibility accessible to the “beginner” who wants to learn to write an extension.
“Learning Joomla! 1.5 Extension Development” is “A practical tutorial for creating your first Joomla! 1.5 extensions with PHP”, and it does a very good job of introducing the fundamentals of using the new Joomla! 1.5 framework. The book provides exactly what it advertises and does not represent itself as a general purpose programming resource. You will not find in depth examination of the Joomla! 1.5 MVC (Model-View-Controller) implementation, or general PHP programming instruction, in its 158 pages (and index of less than three pages). The brevity of the book does not, in my opinion, lessen its usefulness as a tutorial. That said, readers should understand exactly what is provided for the publisher’s $34.99 US asking price.
Joseph LeBlanc’s book provides a very well-structured tour through the process of producing working Joomla! extensions, using an example application for publishing, managing, and manipulating restaurant reviews and producing related enhancements to that base application. I worked through the provided instructions, and code, and found everything working as advertised (readers should visit the publisher’s website to download errata for the code in the book). Working completely through the book will produce a real working extension that can be used “as is” to add a “restaurant reviews” service to a Joomla! site and can be easily modified to provide innumerable similar applications. The extension produced as the “final product” could be changed by the reader to produce an extension for publishing movie reviews, book reviews, concert reviews, a business directory, etcetera; with the framework of the application provided by the author, the reader can use his/her imagination to produce many other extensions.
The book is organized in a logical manner, and the tutorial flows well from chapter to chapter with the user finding no need to prowl around in the book to find explanations of what is going on. Beginning Joomla! developers will appreciate the first chapter’s “overview” material which prepares the reader to use the tools, and understand the terms, that follow. The real fun begins when the second chapter jumps right in “getting started” with developing the extension (component) in the Joomla! environment. There’s no laborious reading before you can start producing results; Chapters 3 and 4 proceed directly to developing the “back end” of the extension (the “under the hood stuff”) and the creation of the “front end” part of the restaurant review system (what is seen by the site visitor). From there, the pace stays brisk as Chapter 5 walks the reader through the process of developing “modules” to add functionality to the extension and provide extra features.
A basic introduction of the MVC framework used by Joomla! 1.5 is included in Chapter 6, where the author explains, in easy to understand terms, how to use models, views, and controllers to enhance the application. I particularly appreciate that the book shows how to use the “built in” tools the Joomla! 1.5 framework provides to save the programmer unnecessary coding and help maintain a “unified” appearance of the extension so that it “walks and talks” like an integral part of the overall Joomla! site.
Chapters 7 and 8 treat the reader to the development of a “plugin” to further enhance the utility of the extension being produced and describes how the developer can use configuration settings (parameters) to further control/customize aspects of the extension. The final chapter shows the reader how to package all the pieces of the project together for distribution and installation in any Joomla! 1.5 web site. While not absolutely necessary for the creation of the extension, this is a great help when it comes time to share your work with the greater Joomla! community.
I found this book to be particularly useful in that it allows anyone to produce a workable extension for Joomla! 1.5 without the considerable learning curve that normally accompanies “first attempts” at using an existing framework. The beginning programmer/reader who is truly interested in delving into the wonders of the Joomla! 1.5 framework will likely be left with many questions about why some of the code works the way it does, but none that will prevent him or her from producing something usable and seeing their first extension come to life. This “gentle” approach to Joomla! development goes a long way toward helping decipher some of the more advanced developers’ documentation provided by the Joomla! project.
While experienced programmers/developers may feel the book gives certain topics short shrift, if you use Joomla!, and have ever wanted to create something for your Joomla! sites that is really “your own” but feel much of the available documentation is too dense or obtuse for you to use, I highly recommend this book.
About the Reviewer:
Robert Parker is a California web developer who often uses Joomla!, and other CMS software, to produce websites for individuals and corporations. A long-time DreamHoster, and one of the Sysops of the DreamHost Wiki, he is an active participant on the DreamHost Discussion Forums where he can be found, on an almost daily basis, posting as “rlparker”.