CodeIgniter 3 still runs a lot of production apps. TechLeads counts ~124k CodeIgniter sites, and HTTP Archive saw 234k pages in Sept 2026, down 16% year on year. CI4 is effectively a rewrite, so many teams jump straight to Laravel.
I've been cataloguing what a CI3 → Laravel move actually touches. Here are the mechanical mappings:
| CodeIgniter 3 | Laravel 12 |
|---|---|
application/controllers/Users.php + implicit /users/edit/5 routing |
Controller + explicit Route::get('users/edit/{id}', ...)
|
$this->load->model('user_model') |
Constructor injection / Eloquent model |
$this->db->where('id',$id)->get('users')->row() |
DB::table('users')->where('id',$id)->first() |
$this->input->post('name') |
$request->input('name') |
$this->form_validation->set_rules(...) |
$request->validate([...]) |
$this->session->set_flashdata() |
session()->flash() / ->with()
|
$this->load->view('x', $data) |
view('x', $data) + Blade |
base_url(), site_url(), anchor()
|
url(), route(), <a href>
|
MY_Controller |
Base controller + middleware |
| hooks | middleware / event listeners |
config/database.php |
.env + config/database.php
|
$this->upload library |
$request->file()->store() |
The hard parts aren't in the table: HMVC modules, a custom system/ core, and logic hidden in hooks.
I'm building a tool that does the mechanical part automatically and outputs a PR plus a report of what it couldn't convert. If you have a CI3 app you'd like scanned for free, the form is here: ci2laravel.netlify.app. Which patterns hurt you most? Tell me in the comments.
Top comments (0)