Code Igniter is a popular application development framework for PHP. It is lightweight and easy-to-learn.
The general trend with application development frameworks is to add more features over time. The CodeIgniter development team, on the other hand, has chosen to keep the framework as simple as possible. There is a strong preference for convention over configuration; that is, there is typically one standard way of doing most things, and you don’t need to spend a lot of time and development energy making configuration and set up decisions.
The framework provides a small number of core features. Because of that minimalism, the code base is relatively small (less than 2MB, including documentation.
There are pros and cons to this approach, of course. For an experienced PHP developer, the framework is easy to learn. It doesn’t do too much for you, so if you already know what you are doing, it gets out of your way and let’s you develop.
For inexperienced developers who might want a framework to do a lot of things “automagically,” Code Igniter might seem much too minimal.
About CodeIgniter Versions
As of this writing, there have been three major numbered versions of the CodeIgniter framework. The current version is CodeIgniter 3, but you can find lots of applications that are running on each of the earlier two major versions. Version 2 is especially popular, and a large proportion of existing CodeIgniter deploys are this version.
CodeIgniter follows semantic versioning principles, so version 3 is not backwards compatible with applications written in version 2. Upgrading an existing application is possible, but is fairly complicated.
If you are working on an existing application, you might have to learn version 2. However, if you are starting a new project, you really should use use the current version. This will allow you to take advantage of a number of enhancements and security fixes, including:
The tutorials and other resources listed here cover CodeIgniter 2 or 3. Be sure that the tutorial you use matches the version of the project you are working on.
- Codeigniter Tutorial: Learn Codeigniter in 40 minutes is a one-sitting introduction to the framework for experienced PHP developers.
- CodeIgniter Tutorial for Beginners is a code-heavy introduction to the framework, suitable for experienced developers who are only beginners with CodeIgniter, not PHP.
- This series of tutorials from FormGet walks a new CodeIgniter developer from beginner to advanced.
- CodeIgniter Tutorial is a video overview of the framework. It provides a very basic introduction, useful for getting a sense of the possibilities.
- Codeigniter Video Tutorial for Beginners is a fantastic resource that walks beginners through the entire process from installation to building an app.
- CodeIgniter Tutorial from Tutorials Point is a great step-by-step walkthrough of the framework, for absolute beginners.
- PHP CodeIgniter Tutorials for Beginners is a collection of tutorials sequenced for helping new CodeIgniter developers learn the framework from scratch.
- PHP MVC Framework CodeIgniter Tutorial for Beginners is a premium (paid) course from Udemy, providing almost 100 video lectures covering CodeIgniter inside and out.
- The official CodeIgniter Documentation is the first source for looking up any questions you have about the framework.
- CodeIgniter Example Application is a GitHub repo which you can explore to learn more about CodeIgniter application design.
CodeIgniter is a minimalistic framework, so a lot of functionality that might be built-in to other frameworks is available as a plugin or separate module. There are a lot of these, ranging from tiny utilities, to high-level application builders. Here are a few of the most interesting large-scale CodeIgniter add-ons:
- Bonfire is an automated admin and profile management plugin for CodeIgniter.
- Fuel CMS is an open source content management system built on top of CodeIgniter.
- Ignition-Go is a modular app-building framework built with CodeIgniter and Twitter Bootstrap.
The best place to find more is Awesome CodeIngiter, a curated list of the best and most useful CodeIgniter tools.
CodeIgniter is an open source project with an active developer community.
- The CodeIgniter source repo at GitHub is the central place for CodeIgniter development.
- CodeIgniter Forums and the CodeIgniter subreddit are the two best places to interact with CodeIgniter developers online.
Books about CodeIgniter
These books cover the current version of Code Igniter.
- Practical CodeIgniter 3 (2016), by Lonnie Ezell, is an all-in-one guide to take you from knowing nothing about CodeIgniter to building complex web apps with CodeIgniter and modern development tools like Composer.
- CodeIgniter Testing Guide (2016), by Suzuki and Whitney, is a book on using PHPUnit to do automated testing in CodeIgniter.
Earlier Versions of CodeIgniter
The following books are the best available for earlier versions of the framework.
CodeIgniter for Rapid PHP Application Development (2007), by David Upton, was the definitive book on CodeIgniter when the current version was 1.x.
CodeIgniter Web Application Blueprints (2015), by Rob Foster, provides information on best practices and commonly used techniques for building application with CodeIgniter. Foster also wrote the next book on our list, and both are targeted for CodeIgniter 2.x.
CodeIgniter 2 Cookbook (2013), by Rob Foster, is a collection of recipes, or good solutions to commonly-encountered problems.
Should I Learn CodeIgniter?
CodeIgniter is one of the most popular PHP frameworks, consistently ranking among the top 5 preferred frameworks by PHP developers. It scores well for both “at work” and “personal projects,” meaning that its a highly employable skill, and you’ll likely enjoy using it.
Learning how to build applications in CodeIgniter — especially if you have only been writing PHP apps from scratch or with a CMS like WordPress — will greatly increase your range of possibilities.
Further Reading and Resources
We have more guides, tutorials, and infographics related to coding and development:
- PHP Resources: this is our resource guide for learning PHP and improving as a coder.
- Composing Good HTML: this is a solid introduction to writing well-formed HTML and using HTML validator software.
- CSS3 — Intro, Guides & Resources: this is a great place to start learning webpage layout.
What Code Should You Learn?
Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, “How much money will I make programming PHP for a living?”