DEVTRENCH.COM

PHP Application Framework Battle Royale: CodeIgniter vs. Symfony

CodeIgniter vs SymfonyI found CodeIgniter yesterday and it looks really promising for a php framework. It's very similar to Symfony but its geared towards the shared hosting crowd who wants a framework that can work with them a little better (or at all). I worked with Symfony about a year ago on a project called MeetFish and it was really cool to see how rapidly we developed the site using a framework (the awesome programmers at Agathon were the real code masters here while I did the design and a little view coding). I've always wanted to use Symfony on another project but was never able to because I don't run a dedicated server and don't have the time to figure out if it will work in my shared hosting environment. Basically, if I can't install it in under 30 minutes, I can't use it.

This is where CodeIgniter comes in. They claim that the framework works in shared hosting environments, and alleviates the need for the command line. In other aspects it looks very much like Symfony or Ruby on Rails but without the fancy command line auto building features (however, it looks like CodeIgniter handles some of this from php script calls).

Here is a one to one "CodeIgniter vs Symfony" comparison:

Feature CodeIgniter (1.5.4) Symfony (1.0.6)
Footprint (including docs) 1.83 MB 7.84 MB
Performance Never mention tweeking the server for performance enhancements Mentions tweeking the server, lots of performance inhancements that would be impossible on a shared environment.
Server Compatibility Claims to run in shared hosting environments and up.
LAMP Platform
Install Page
From my experience, very difficult to set up if you can't use PEAR to install and do no run a dedicated server (or do not have root access).
LAMP+PEAR+Other PEAR Libraries (Phing,Pake,Creole...these are now bundled with Symfony)
Install Page Here and Here.
Configuration one primary config file lots of config settings
Command Line use no command line interface cool command line interface to set up projects, scaffolding, crud, etc
Libraries written to be loosely coupled Depenent on some libraries as mentioned above
Documentation I am very impressed with the documentation on both sides. Symfony has more, but it is a much larger project. Symfony has more tutorials and they are better, and symfony has a book
Simple Templating both use PHP mixed with helper functions/classes
Helper Functions yes yes
Cache management yes yes
Smart URLs yes yes
Scaffolding yes yes
Multilingualism and I18N support Uses Language Files Sophisticated i18n internationalization
Programming Structure both are MVC models
Ajax support can be integrated supports natively, and is really cool

Overall, Symfony is more sophisticated (ie. harder to use) while CodeIgniter seems more geared to my level of programming and environment. Symfony might be good for you if you live in code day in and day out, and have a dedicated server, but if not, give CodeIgniter a try. I'll report back after I do some real tests with CodeIgniter to give my honest opinion about how it works.