codeIgniter_logoCodeIgniter was originally released in 2006, and is often noted for its speed when compared to other PHP frameworks. Unlike Symfony, CodeIgniter is ideal for shared hosting accounts or for when you want a framework with a small footprint.

In addition to featuring an extensive library of video tutorials, great compatibility with standard hosting and databases (including MySQL), a low need for configuration, forums, a user guide, and a wiki available for support, CodeIgniter is also relatively easy to learn. Developers at all skill levels love working with it.

Model-View-Controller Architecture

CodeIgniter is built on the Model-View-Controller (MVC) software architecture. Though it sounds complicated, MVC is simply a way to build a user interface by splitting a software application into three interconnected parts:
MVC Software Architecture

  1. Model: This controls the behavior, data, logic, and rules of the software application.
  2. View: This is any type of output of information for the user. It is what the user actually sees.
  3. Controller: This is what captures input from the user. This input is then converted into commands for the Model or View.

The interaction between the Model, View, and Controller of an application is what makes the software application function. Though it may look complex, MVC architecture is actually quite simple.

When the user gives input to an app, the app’s Controller takes that user input and sends commands to update the Model’s state. For example, when a user edits a document, the user is providing input to the word processing app. The app’s Controller then uses that input to update the Model’s state, which could be as simple as changing a comma to a period in the document. The Controller also sends a command to the app’s View to change its state based on the new information in the Model (that the comma was changed to a period). So now, the user sees a period on their screen instead of a comma.

Why Does MVC Matter?

By using MVC software architecture, developers are essentially able to separate the core functions of an app, allowing developers to modify the separate segments of the application code while leaving other parts unaffected. In the end, this allows developers to work faster, more efficiently, and with fewer complications.

Though originally developed for desktop computing, MVC architecture is now widely adopted as an architecture for web-based applications in many of the most popular programming languages. Many open-sourced and commercial web frameworks also continue to enforce the MVC pattern, though they may vary in their interpretations of where most of the processing work takes place (ex: on the server vs. the user’s computer or device). Programming languages and frameworks typically employ either server-side or client-side methodology, depending on the application and the need.

Our Experience with CodeIgniter

At White Sunrise, we love working with CodeIgniter, and we’ve used it to create some pretty cool software and web apps. A few examples include:

The flexibility, scalability, and popularity of CodeIgntier has made it one of our favorite frameworks, and it has allowed us to make some great web-based applications that we are really proud of.

Hayden WreyfordCodeIgniter