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.

