A few months ago Jisse Reitsma of Yireo told me about a book he had just written, called Programming Joomla! plugins. He asked me if I was interested in reviewing it. I did, mostly because I was curious what a book on plugins would look like. Once I started reading it I couldn't put it down. By all accounts, it's one of the best Joomla! development books I've read and one I highly recommend to anyone who's serious about doing heavy customizations in Joomla! or writing extensions for it.

In a nutshell

Target audience newcomer to advanced Joomla! developers; basic PHP and Joomla! experience required.
Format paperback, glossy, full colour.
Length 365 pages.
Availability Author's site (Yireo), Amazon, Bol. Please consult author's site.
Price €28 (Yireo) / $30 US Dollars (Amazon) ex. S&H
I liked in-depth coverage of the subject matter with real-world examples and full source code; fully functional source code hosted on GitHub; excellent typography and print quality
I didn't like the system plugins chapter is rather short for such an important plugin type.
Verdict Definitely worth buying. One of the best Joomla! development books I've read.

The full review

As it says on the cover, it's everything you want to know about Joomla! plugins. First off, let me tell you that the book is only available as a printed book, not as an e-book. That's a really good thing. It's far more practical having a printed, physical book by your side when developing than having an e-book reader device or window. I know the Millennials among you laugh at me now. I was skeptical too. You just need to try it. The practical aspect aside, the physical quality of the book positively predisposes you for the quality of the content. The book is a hefty 365 glossy, full color pages with the perfect size screenshots and beautiful, functional typesetting to make it easy to find the information you need faster than fumbling with an e-book's controls.

Your first reaction to a book on Joomla! plugins might be similar to mine. Why would someone need an entire book on the subject? All of the other Joomla! development books I've read are big on components and have just one tiny chapter on and plugins. Then I realized that plugins are the most useful extension type in Joomla!. They allow you to change the way Joomla! works under the hood without hacking core. How many sites would have not been hacked if the person who built them had used custom plugins instead of core hacks? Plugins allow you to upgrade the sites upgraded to the latest security release without a second thought. Core hacks condemn sites to be forever pinned to a vulnerable, old version of Joomla!. Not to mention that after not too long core hacks are absolutely unmanageable. Wise use of plugins is what makes Joomla! such a powerful CMS. I should know, after all my security extension (Admin Tools) is essentially one big plugin!

Jisse not only realizes and teaches you that, he's taken teaching plugin development to a whole new level in his book. While other programming books rely more on theory and less on the practical uses of the subject matter, Programming Joomla! Plugins is firmly rooted in the real world. He explains the practical uses of each plugin type and the real world challenges you'll face - along with the best practices which will save you several hours of frustration. He even goes further, giving you some very practical solutions, such as exactly how to integrate Solr search on your site or how to write and refactor an authentication plugin. With full source code. On GitHub.

This book is also an excellent reference for plugin developers. I'm not just talking about how each odd and awkwardly named plugin event is called and what arguments does it take. For example, is it onContentPrepare or onPrepareContent and what is the sole argument's format? Simple questions which can easily take half an hour to decipher and kill your concentration are now answered immediately. It even gives you a very thorough walkthrough on writing the XML manifest and all the nitty-gritty details required for packaging your plugins. In two illustrated chapters. Or five if you count the last three chapters covering tips and tricks, best practices (THANK YOU!) and the proper way to releasing your plugin and providing updates. This may not sound like much but I've got at least two bugfix releases on the same day as the previous release to show for failing to tackle one of those small but enormously important details. The devil does lie in the details, folks, and nobody is immune to them.

I've said in an interview last month that this book can even teach an old dog like me a few new tricks. It's true. I learned a few tricks I would've eventually guessed - especially in the chapter on search plugins. Having them served on a silver platter is just so much easier and readily gives ideas about new features to implement in your own software.

Amazingly, he even manages to tackle the most obscure use for plugins, custom plugins for your extension. Most importantly he explains how plugins fit in the overall Joomla! architecture. Make no mistake, this is exactly the kind of knowledge you need to be a successful developer. For this chapter alone the book is worth its weight in gold.

If you are even half serious about customizing Joomla! at an enterprise level or becoming an accomplished Joomla! developer this is a book you must read. It's certainly not the only book you'll ever need. It only covers plugins, the unsung heroes that make Joomla! tick. You will need other books covering at least components and the most commonly used Joomla! APIs. But let me tell you in no uncertain terms that if you want to be a serious, productive and accomplished Joomla! extensions developer you need to read this book and keep it by your side as reference.

Disclaimer & full disclosure

The book reviews I publish are not sponsored in any way by the publishers or authors and I never publish affiliate links on my blog. I make a living from writing software, not selling other people's books. I did receive a free copy of the book for review purposes. I do personally know the author, just like I know almost everyone who's someone in the Joomla! world. This doesn't affect my review in any way. What you read is my honest, subjective opinion about the book.