PHP coders looking for an easy to use tool kit, with a small footprint, yet which enables them to create comprehensive web applications, will love CodeIgniter; it’s all this and a whole lot more.
It’s a MVC framework and can be easily integrated with both small and large business applications; and the fact that it is both lightweight, and simple means your application development is faster, and even more creative. That’s because your focus shifts from writing code from scratch to choosing from a rich collection of libraries to implement commonly used functionality. So, your focus as a PHP developer can shift from the mundane to something that is more creative.
The time and effort spent in writing endless amounts of code can be put to better use to deliver next generation web apps that meet all client expectations.
Architectural Goals of CodeIgniter
Small in size, but packs in a whopper of a punch – That’s what CodeIgniter is all about. It seeks to deliver optimum performance, capability and flexibility in a framework that is quite small (as compared to the other PHP frameworks out there) and light.
To meet this goal, CodeIgniter sticks to a three pronged process founded on the pillars of Benchmarking, Re-factoring and Simplifying. This allows them to fine tune the development process in a manner where any unwanted step is kicked into the nearest bin; this ensures that they are true to their objective of offering a simple, yet comprehensive development framework that allows for the quick development of full featured applications.
Seen from a technical and architectural prism, there are three objectives that CodeIgniter aims to achieve namely:
Reducing Reliance of System Components on Each Other: The more a system’s components rely on one another, the lesser they can be reused. CodeIgniter has structured a system of components wherein very few components depend on each other; this ensures their reuse and the overall flexibility of the system. The focus of this framework is on ‘loose coupling’.
On Demand loading and Execution: The operating word here is ‘dynamic instantiation’. It’s only when the framework receives a request for a particular component/s that it is loaded; when it receives a request for routines, they are executed. This is why the system is lightweight, because events don’t happen globally, but only when they are triggered by the HTTP request. The system is not configured to make assumptions, and cannot think beyond just a few core resources.
Built to Maximize Component Usefulness: The focus of CodeIgniter is maximizing the efficiency of its components; each class in the framework is autonomous. This means each component has a specific purpose, which leads to better system performance.
How It Works?
(Image courtesy: Codeigniter.com)
* CodeIgniter runs when the front controller, index.php initializes the base resources.
* Once the HTTP request is sent, it is examined by the Router to determine future course of action.
* Normal system execution is bypassed if there is a cache file and this file is sent to the browser.
* All HTTP requests and submitted data undergo security filtration before the applications controller is loaded.
* The specific request is processed by the Controller by loading the relevant libraries, helpers, etc.
* Once the view is finalized, it can be seen through the web browser.
Advantages of CodeIgniter
The benefits of any framework need to be experienced to be believed, but all the same it’s always a good idea to know what you can expect from a framework:
→ Easy to Learn
→ As compared to other frameworks, the documentation process is simpler
→ Optimum Performance
→ Quick application development
→ SEO Friendly URLs
→ Enables creation of custom libraries/modules
→ Allows integration of External/Third Party Libraries
→ Multiple database support for e.g. MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC
→ Version upgrade follows an easy to document process
→ Loose Coupling
→ An active user community
→ No template engines required
→ Support for Profiling and Benchmarking
→ Enables setting of multiple application in a single checkout
→ Inbuilt jQuery and Captcha Support
……… And many more
CodeIgniter offers simple solutions to complex needs and this is its biggest strength. It does away with large scale monolithic libraries and is a framework with a much smaller footprint than its counterparts. But don’t take my or anybody else’s word for its performance, use it and see for yourself.