It’s amazing the difference a year can make. This article is pretty outdated now, I’ve since written a follow-up which addresses the comparative points of both frameworks a little easier and in-depth. Both frameworks have evolved since I wrote this, check out the updated comparison here.
I’ve been getting a lot of traffic off Google from people searching “Codeigniter vs FuelPHP”, so I thought I would write a post explaining the advantages and disadvantages of each. Whilst FuelPHP might appear to be a new kid on the block, the similarities between Codeigniter and FuelPHP aren’t that much in terms of performance, coding or speed.
Codeigniter
Pros:
- It has a small foot print
- Can be infinitely extended
- A developer who knows PHP and understands MVC and easily debug and develop a Codeigniter application whether it be a new one or an application another developer built
- Codeigniter has a large community behind it
- A lot of helpers, libraries and additional s can be downloaded for it like; Modular Extensions and Datamapper. Although it would be nice if this were built in.
- Great and in my opinion unrivalled documentation.
- Easy to learn and understand. There are hundreds of applications out there you can use as a learning reference both paid and free. EllisLab use Codeigniter to power their own flagship products.
Cons:
- No automagic loading for libraries or helpers.
- No authentication library
- No in-built ORM. Codeigniter comes with an over-glorified query builder.
- Has yet to fully take advantage of PHP 5 features, so things like getting an instance require calling a function and storing the value in a variable are still common place, even though PHP4 support was dropped.
- Does not support the HMVC (hierarchical-module-view-controller) pattern without downloading a third party library like Modular Extensions or Modular CI.
- Codeigniter’s autoloading is not true autoloading as Codeigniter will always load a class set to be autoloaded even if you don’t use it which can cause bloat.
FuelPHP
Pros:
- Really lean and fast.
- Takes advantage of PHP static variables and functions. A lot of class functions can be called statically or via instantiated means like Codeigniter.
- Has a powerful driver based authentication library with Simpleauth and ACL.
- Super powerful ORM baked in.
- Everything can be extended because everything is effectively a class, this includes the entire core.
- Utilises name spacing which means you can have multiple classes of the same name under different namespaces.
- Out of the box HMVC (hierarchical-module-view-controller) functionality, so you can break your code up into modules (Codeigniter users familiar with Matchbox, Modular CI or Modular Extensions will be familiar with this)
Cons:
- Might be a bit too much to understand for a beginner to intermediate Codeigniter user or PHP developer due to how the file system is laid out.
- It’s still a relatively new framework which could have caveats that have yet to rear their heads. Although, I encountered no problems when I used it.
- Documentation is still sparse, a lot of sections are still incomplete.
- The community is rather small and there aren’t really many applications built with it you can learn convention from (yet).
- Things like name spacing which is relatively new to PHP might be hard for a Codeigniter developer that hasn’t really been exposed to them before, so the slashes in function names might confuse people.
- The amount of developers contributing to the framework is quite low in comparison to Codeigniter or any other PHP framework for that matter, which means one developer quits contributing and the framework could suffer immensely.
The bottom line is that Codeigniter and FuelPHP are two completely different frameworks with different end goals in mind.
Comparing them to one another is like comparing a manual transmission car to an automatic transmission car. They’re both cars, they both get you from A to B, one just has more parts and technical engineering involved.
If you know Codeigniter and don’t feel comfortable with Fuel upon initial glance or you’ve tried Kohana before which shares a similar file system layout, stick with Codeigniter and learn Fuel on your downtime.
Good write-up, but I have a couple of notes ๐
CodeIgniter:
– It doesn’t have an implementation of the ActiveRecord pattern, what CI calls AR is just a querybuilder. To read more on what the AR pattern truly encompasses try http://en.wikipedia.org/wiki/Active_record_pattern
FuelPHP:
– Not everything is static, in fact most libraries work with instantiated objects – but access is almost always possible through static calls.
– We don’t really have that much “automagic”, only if you call autoloading classes automagic but that’s just a PHP5 functionality which we implemented. Other than that we’re (like CI) configuration over convention.
– I would argue we’re not that much more difficult than CI, but we’re using the full force of PHP5 and PHP5.3 OO capabilities while CI is still pretty much limited to PHP4’s far simpler OO implementation – and our usage of namespaces and static classes might scare some a bit at first.
do you a facebook dwayne?
Steven,
Mark Zuckerberg is an epic nerd. The name of this blog is “I Like Kill Nerds”, so if I were to use Facebook I would be condoning nerd activity of which I am trying to stamp out. I mean look bro, I’m going to lift some weights.
haha cool man! do work!
Jelmer,
Thanks for commenting, I’ve fixed up the article with your comment notes. My reasoning for saying that it has a bit more of a learning curve to it than Codeigniter was more-so in relation to the PHP 5.3 functionality and features supported. Not many PHP developers (especially ones who’ve been using Codeigniter for a while) are familiar with things like closures (anonymous functions), namespaces and some have never even used nor understand the use of statics either let alone late static binding which was introduced in 5.3.
However instantiating objects and classes isn’t all too different in Fuel. Understanding namespacing is also not that difficult as well, it’s just more of the fact people have to learn new PHP functionality to really really use Fuel to its full potential, not that I see it as a bad thing though.
do you think fuelphp is for nerds ?
There’s a small app I wrote for other people to learn how things work in Fuel using it – https://github.com/abdelm/stationwagon
Vamsion,
FuelPHP is for nerds with taste ๐
Nerds are for nerds! upload.wikimedia.org/wikipedia/commons/8/86/Nerds_(candy).jpg
I wouldn’t say that FuelPHP is more for nears than CI is. The main reason FuelPHP exists is to learn from the mistakes other frameworks have made and build a better framework from scratch. A prime example of this is CI’s super object. FuelPHP is for any developer wanting to use the most recent technology and not let a legacy framework restrict the design of their app.
why do you hate nerds?
NERDS MAKE ME ANGRRYYYYY!
Most importantly, both frameworks have pretty cool names.
This is a discussion between nerds right?
Given that it began as a fork of CI and is the other inspiring force behind FuelPHP people interested in this article might also want to take a look at Kohana. The learning curb is pretty steep but is very powerful and is more mature then FuelPHP and also supports the HMVC architecture
I also vote CodeIgniter, check out development version 3 (https://github.com/EllisLab/CodeIgniter). Its much more improved. Right now there is no official release for it, but its actively developed on github by community.
Hey fellow UCF students. I have a question that maybe someone in ACM can assist me with. I am building a website similar to craigslist, but with some innovations. My engineer started building it with the fuel php technology, but has now recommended using codeigniter instead. His reasoning was that with codeigniter tech, plug ins will be a lot simpler to add and a wider range of compatibility. I am not that savvy when it comes to programming and it’s technologies. Can someone please help me make the right decision. He also stated that he would have to learn fuel php, and that will cause a set back. My Previous engineer left me hanging after a couple of years of constructing the site, thats why i needed to find someone else to pick up where he left off. Its all built on fuelphp so far. And will i be able to upgrade it easily with newer tech if i go with codeigniter? I thank you all in advance for your help.
Codeigniter is still definitely being developed for sure. Ironically I moved away from Codeigniter to Laravel, and also occasionally use Rails too, and the new place I’ve started working at uses Codeigniter, so I am back to using it in some form. I still love how easy it is to use and understand.