Codeigniter or Joomla ?
Well, where to start. Several years ago, I installed my first Joomla 1.0 package and took quite a significant liking to the order, style, point-and-click ways of doing things. When I discovered the JED, I liked it even more. I experimented with Drupal, WordPress and Joomla all around the same time, but Joomla seemed like the best fit. As time passed on, I ventured further and further into the Joomla Framework in order to edit, create, and modify extensions. With training in PHP (procedural and oop), it all began to make some sort of sense.
Since working with clients means making a system for which you think is easy to make changes, Joomla seemed quite good; Just login, edit and save. That part is pretty good.
However, since being a heavy web surfer prior to 56.6k modem, and even using 14.4 modems, I had quite an exposure to speed and optimizing websites for speed. As high-speed came along, I tended to drift towards bells and whistles rather than speed.
Nowadays, I realistically always keep speed in mind since it is as important as ever. Perhaps 5 years ago when Internet cafes were few and far between, most people used home computers and high-speed modems and a slightly slower loading website was not a huge issue. But, today, wireless is everywhere and there are many factors at stake when it it comes to Internet velocity; such as the router, modem, connection, number of users, and distance from the router. All these factors juggle simultanously.
What does all mean? Optimizing for speed is as important now as it ever was? Maybe.
With speed in mind, I have spent quite some time optimizing templates, files and code for speed; mostly database driven php/mysql sites. I hear the quote “Joomla is for website and Codeigniter is for applications” as though there is madman who copies and pastes that all over the web.
Sure, the YSlow and Google Analyzer do a pretty good job at grading websites. But, depending on the server and other requests; it looks as though Codeigniter gets the edge even if the grade is the same.
If a website can be imagined, it can be created in any CMS or PHP framework, one way or another.
Personally, the speed factor and programming methodology has led me to think Codeigniter for custom and Joomla (or other CMS for simplicity). When it comes to more elaborate applications, I think I would lean more heavily to using Codeigniter since it has much more portability, while Joomla extensions made explicity for Joomla need a complete makeover. I would much rather makeover a template in an hour than recode a PHP/SQL program into a Joomla extension.
As far as learning curves go, with Joomla you can start with the basics (without programming knowledge) and evolve into creating sophisticated custom programs whereas with Codeigniter you would need to know object oriented php. If I had to sit down and write a specific program like a blog, shopping cart, etc it would be better with Codeigniter. I really like its built-in classes and the option to use plain old PHP. The advantages of building a component with Joomla classes is to sell it, or gain something through its release like respect, or, because you really need backend parameters. Since Codeigniter applications can be Joomla extensions, that offers the best of both worlds; except that if you a different user of the website to be able to edit any content, you must make custom CRUD functions and view files. It can’t go the other way very easily…Joomla component to Codeigniter application, but it is quite possible to do with recoding the Joomla MVC to Codeigniter MVC.
Another benefit of Joomla is the extensive amount of extensions. Codeigniter has some gems, but far less. Another positive for Codeigniter is that Expression Engine was written with the Codeigniter Framework; thus using the CMS would like home for a Codeigniter user.
After reading many books, websites, and community forums, I would give the edge to Joomla with regards to freebies and overall support. After reading 3 Codeigniter books and experimentation, the Codeigniter documentation is very good and accurate, but the books and many online codes are incomplete. However, many of books and online documentation is very helpful. It could be a bit of a wild goose chase to test a little code here and there, what to add, what to leave out, but overall more helpful than not. I found that making codeigniter work as desired was much more hands-on than installed and modified codes. On the other hand, I have found overall that Joomla is easier to get more accurate documentation, from extension forums, online documentation, and even advanced books like Mastering Joomla 1.5 ‘Extension and Framework development’ (first edition and second edition) and Learning Joomla 1.5 Extension Development.
Personally, I found the balance for which Codeigniter applications can be simply ported over to Joomla or Expression Engine, or used on its own. If the only satisfying condition is to build a Joomla extension without Codeigniter so that backend parameters can modify templates, etc, then, a Joomla component is fine. Both options are still good.