DEV Community

Sanad Kit
Sanad Kit

Posted on

Mapping a CodeIgniter 3 app to Laravel 12: the 12 patterns that cover most of the code

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)