maandag 31 maart 2008

Review Mastering Joomla! 1.5 [ISBN 978-1-847192-82-0].

In January I managed to secure a 6th place in the Innovation Award contest on phpclasses.org and subsequently I was honoured with a price of my choice from the generously donated prices of sponsors of phpclasses.org. This turned out to be a bit tricky as most prices seem to target the Microsoft platform, but I was quit happy with the possibility of choosing a book form the Pact Publishing collection. My choice fell on Mastering Joomla! 1.5 - Extension and Framework Development, written by James Kennard [ISBN 978-1-847192-82-0]. The book was delivered to me within 3 days after processing, which I consider a feat of Pack Publishing as I live in Portugal and have different experiences with delivering of goods by mail. As I adhere by the principle of giving back to the community, I though it was a good idea to write a review on the phpclasses.org site.

I choose the book because I use Joomla and followed the transformation from 1.X to 1.5. As anybody using Joomla will know the platform went through some pretty steep changes for the better and the online documentation is a bit unhandy to use. Planning to write a few extensions for site's I host I was looking for a book that could at least in part be a replacement for this documentation. As I went through the site of Pact publishing My eye fell on this particular book because of the example chapter they show. And indeed now I have the book I'm in no way disappointed.

On first sight the book offers clear tables and lists and is accompanied with a lot of examples on how to use and implement the Joomla framework to build your own extensions. IMHO you can use the book in two way's. Either as a complete piece of course-ware that teaches you step by step to use the frame work or as a kind of dictionary to the classes referenced.

The book is targeted to the 'PHP developers who want to understand Joomla with a view to advanced customization or extension development.' In my opinion it might have been a good idea to state that a good knowledge of php, working with classes and objects is requested from the reader. If I look at a lot of extensions emerging on the the Joomla website and the way they are written, I think that a lot of people will have a hard time getting into the book or at last understanding what was written. For the rest, that probably form the professional group of users, it will be a great help and shed some light on subjects you would have to find in the forums or other sources.

James Kennard choose a logical approach for the content of the book starting of with an introduction to Joomla before he gets started with setting some things clear conserning how to start of with things. Most important here is the introduction to the main classes and the coding standard. After this he quickly enters the 'most wanted' territory by tackling the database.

The database is IMHO the most important part of Joomla and the access to it has been one of the biggest changes in Joomla 1.5. It has become more secure then ever (for how long one might wonder) but access has become easier as well, as long as you stick to the principles laid out in this chapter.

After this James tackles the components and especially the MVC setup of components. Never heard of it until the development of Joomla 1.5 but it's refreshing logic made me an advocate. Get into it and you will probably start rewriting anything you ever did, even outside of Joomla. I go strictly MVC now.

The next three chapters are targeting module, plug-ins and extension design. These give a clear and understandable picture of the place of your code and how it should interact. The next IMHO important chapter teaches how you render your output. No use of having your code 'do things' without output is it? It shows clearly how you may use templates for your code before stepping into the next chapter that shows how to customise pages and take care of translations and java effects.

The next chapter shows how to use web services and and ever so popular API's. It shows you how to incorporate AJAX, LDAP or email into your project, but also covers Google, Microsoft and Yahoo web services. Like to toy around with XML? Then this is definitely a chapter you should not miss

Then we hit another winner. A chapter about error handling and security. Now this is a chapter that is worth every penny you have to pay for the book. Look at it as if you get the rest for free. Most security problems arise of poor programming and this chapter points out how you can make your extension as secure as possible. SQL injection exploits have been and still are a major source of problems on any platform. Here you find info on how to prevent this from your code as well as how to use error handling and ACL in Joomla.

The last chapter is filled with goodies in the form of utilities and use full classes. Here you will find a lot of info on date and time handling in Joomla, the special helper class and how to make use of the JLog class.

When the book has nothing left to reveal, it's time for the appendix. Not the least usefull part of the book as it offers a detailed look on core classes, parameters and configuration of Joomla. It is organized in a way that it can be used as a easy accessible reference during development. As Joomla is very dynamic in it's development James points out that additional info can be found on api.joomla.org. I my case this means the book will probably collect additions and errata's in this appendix till it burst out of it hinges. And this is like it should be for any good book.

I'm very happy with this addition to my book collection, if you develop for Joomla it is a must have. On a scale of 1 to 10 I give it a all round 9 (don't do 10's). If you like a lot of hobby developers need more examples or some working code, this is also available on the fine http://www.packtpub.com website.