Author

Publisher

Release date

ISBN

Sales ranking

Reviews

R.L. Renkemadevelopment.assist.dyndns.bizRecently, a PHP class of mine was nominated to PHP Programming Innovation Award. Thanks to that, I was honoured with a prize of my choice. I have chosen this book because I use Joomla and followed the evolution between 1.X to 1.5.

As anybody using Joomla will know, the platform went through some pretty steep changes for the better, so the online documentation is a bit unhandy to use. Planning to write a few extensions for sites I host, I was looking for a book that could at least be in part a replacement for this documentation.

As I went through Packt's site, my eyes fell on this particular book because of the example chapter they make available for free. Now that I got the book, I am in no way disappointed with it.

In a first look at the book you can see it offers clear tables and lists. It is accompanied with a lot of examples on how to use and implement the Joomla framework to build your own extensions.

In my opinion you can use the book in two ways: either as a complete piece of course-ware that teaches you step by step to use the framework, or as a kind of reference manual of the framework classes.

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 in the book that a good knowledge of PHP and working with classes and objects is an important requirement.

When I look at a many of the available extensions in the the Joomla Web site and see how they are written, I think that some people will have a hard time getting into the book, or at least get a good understanding of all the concepts. Besides that, for professional developers, the book is a great help. It may help shedding some light on subjects that otherwise you would have to make some effort find help in forums or other resources.

James Kennard has chosen a logical approach for the content of the book, starting off with an introduction to Joomla before he proceeds explaining how to start of with extension development. Most important here is the introduction to the main classes and the coding standards.

After this he quickly enters important matters by tackling the database structure. That is one of the most important aspects of Joomla. Database access was one of the most important changes in Joomla 1.5. It became more secure but database access has also become easier, as long as you stick to the principles laid out in this chapter.

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

The next three chapters focus on modules, plug-ins and extension design. These chapters give a clear picture of the place of your code and how it should interact within Joomla.

The next most important chapter teaches how to render your extensions output. There is no use of having your code do things without showing anything, right?

This chapter shows clearly how you may use templates in your code before stepping into the next chapter that shows how to customise pages and take care of translations and Javascript effects.

The following chapter shows how to use Web services and and ever so popular APIs. It shows you how to incorporate AJAX, LDAP or email into your project, but also covers Web services of Google, Microsoft and Yahoo. Do you like to toy with XML? This is definitely a chapter you should not miss.

Then we move on to another winner, a chapter about error handling and security. This is chapter is worth every penny you have to pay for the book. Look at it as if you are getting the rest for free.

Most security problems arise of poor programming. 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 how to use error handling and access control lists (ACLs) in Joomla.

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

At the end of the book there is the appendix. It is certainly not the least useful part of the book. It offers a detailed look at the 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.

Since Joomla is very dynamic in its development, James points out that additional info can be found on api.joomla.org. I think this means the book presents additions and erratas in this appendix as much as possible. And this is like it should be for any good book.

I am 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 (I do not give 10).

In sum, this book will help you to quickly learn how to write extraordinary Joomla extensions that otherwise would be hard to find. James Kennard shares his knowledge of the Joomla framework in a clear and understandable way.