Published by Mijingo

movie icon image

EE Insider Blog

Spend your time learning and developing sites with ExpressionEngine and we'll use this blog to keep you informed of all the news related to ExpressionEngine and CodeIgniter.

» Read more in the Archives.

» Have a tip? Send us your EE news.

Learn ExpressionEngine Today

Over a series of 8 videos, watch and learn as Ryan builds an entire ExpressionEngine website from beginning to end. Get started now.

ExpressionEngine 2 Week: What does CodeIgnited Mean?

So you’ve heard the discussion about ExpressionEngine 2.0. You’re not an add-on developer and you don’t program PHP. You just like ExpressionEngine as a CMS. So what does ExpressionEngine being on CodeIgniter mean for you?

The literal meaning

One of the biggest changes you’ll notice right away is that ExpressionEngine’s folder structure has completely changed. Yes, there are still good ‘ol index.php and the themes and system folder, but when you click on the system folder you see this:


The new folder structure in ExpressionEngine 2.0.

“Where is the extensions folder? I see plugins, but no modules? Helpers? as in Hamburger?”

Do not be alarmed my Type-A friend, this is merely one of the changes in moving an application into CodeIgniter. You’re actually looking at the CodeIgniter folder. Even the cache folder isn’t the same cache that you’re used to. No, it’s CodeIgniter’s cache folder and it’s not going to hurt you (it doesn’t even want permissions!).

“But where’s config.php? There’s no config.php. I know I need to give that permissions.”

You do, but its moved. To where? The expressionengine folder. This is what CodeIgniter calls an application folder. The system folder is the CodeIgniter framework or system, the expressionengine folder is the ExpressionEngine application.  You open the expressionengine folder and you’re greeted by this:


Contents of the expressionengine directory.

This is now ExpressionEngine. You will find your config.php in the config folder, and your cache folder to its left (if you use alphabetical sorting). In the folder third_party is where you now install your add-ons: modules, plugins, etc. Don’t be fooled by the modules, plugins and extensions folder in the directory. They are ExpressionEngine’s built-in extensions and modules and they do not concern you at all. You will spend a small amount of your time in the config folder for setup, and do most of your work in the templates folder.


Installing ExpressionEngine has also changed. The form is not as long, but to install you will go to instead of just automatically loading the installation script. It’s a minor change to install but don’t be confused on first run.

Everything else is exactly the same past this change in structure. You still create sections and make channels (formerly weblogs) the same. You still upload your files to the server and need a database. You still work in the templates area in the CP or with flat files in the /system/expressionengine/templates/ folder (or wherever you designate in the template settings). So do not fear this change in structure.

Yes, but what does it mean?

Primarily, it means that the application you use to build websites just gave a tremendous amount of power to the people who build the add-ons you use. With CodeIgniter, it takes it onto a whole ‘nother playing field because no longer is ExpressionEngine limited to interacting with extensions or modules. No, with CodeIgniter entire applications can interact with your ExpressionEngine install.

Let’s say, for example, you want to build an e-commerce solution. ExpressionEngine can be heavily modified to support such an idea, and many have successfully done so. However, wouldn’t it be easier if you just install another application and one add-on and the two interact? Now payment processing is passed on to your ExpressionEngine application through CodeIgniter and likewise content is shared between the two. You get the security of well-built CodeIgniter payment processing application with the content management of ExpressionEngine.

Or, for another example, let’s say that you’ve looked high and low for a good calendar solution. ExpressionEngine doesn’t have a solid way to do it, so you keep looking. You don’t want base functionality, you want Google Calendar functionality. This leads to a big problem: that kind of extension could severely mess with your ExpressionEngine content. Plus, who wants all those repeating entries. Instead, what if you could create an entry and then send it to your Google Calendar CodeIgniter application. You could set various options in the publish page (e.g. repeat every month) and EE will talk to the other application easily, give it the data, and you only have one entry to maintain in ExpressionEngine.

“OK, that’s a little too much for my tastes,” you say, “I don’t need an entire application.”

Well, CodeIgniter means another thing for you front-end folks: Developers will be able to build more complex, useful add-ons quicker and that do things better. So you’ll have more addons that facilitate making your job easier. You also get all the CodeIgniter developers potentially building something useful. This means a broader market with more competition which, historically, means you’re going to get a better product and bang for your buck.

Also, it means CodeIgniter and EE are now intertwined at EllisLab. If one product gets an update it will most likely benefit the other.

So what should it really mean to you, front-end user, that EE is CodeIgnited?

It means you don’t have to worry about it being CodeIgnited, but you can now start thinking about growing your client services and or current site with ExpressionEngine, and without it getting in the way.

Posted on Oct 28, 2009 by Kenny Meyers

Filed Under: ExpressionEngine 2 Week

Daniel09:24 on 10.29.2009

Through all the recent hype, I totally forgot that EE 2 is built on CI. This is terrifically exciting, as a die-hard CI developer myself.

moogaloo10:36 on 10.29.2009

i have no idea what CI is really, or what it can do, and I’m excited!!!

David Couillard18:49 on 10.29.2009

This is going to be one of the longest November of my life…

Hambo22:06 on 11.01.2009

Great writeup Kenny. Now for those 2 apps to be built and I will be very happy!

PXLated17:15 on 05.03.2010

Fine, have waited almost 2 years for an EE update while all other platforms pull ahead. All this means to us EE front-end developers is no progress on any of the old, long requested feature requests - and where there have been, it just means a bigger expense. Many advantages for those into PHP platforms, none for the rest of us that I can see other than delay, delay, delay.
Sorry, long-time fan of EE but to me, the whole CodeIgnitor conversion has be more like a train derailment.