There are many detailed, technical comparisons between CodeIgniter and Laravel. Based on the comparisons it can be rather difficult to make decision what would be better for a given project – CodeIgniter or Laravel.
Practical difference between the two PHP MVC frameworks is that CodeIgniter is more suitable for smaller projects, where – on top of that – customer doesn’t know yet what exactly he/she wants. It means, that your customer can suddenly ask for adding some functionality on front end when project is almost completed. It means a whole lot of work in back end: serious redesign of tables in database and rewriting models, and after that rewriting controllers and views etc.. The redesign of a relatively small online service, which is almost completed, can be done much faster with CodeIgniter, than in Laravel.
In my opinion, CodeIgniter is better option for small projects, where for some reasons – usually budget – detailed blue print of the project can not be prepared or SSH access or Composer is not available in web hosting. So, if you need a PHP MVC framework for prototyping some rather small online service, without very advanced functionality, CodeIgniter is a very good choice.
One big advantage of CodeIgniter is – what I mentioned above – that you can use it on almost every cheap shared web hosting, where Composer is not installed and/or where you have no SSH access. You can make CodeIgniter working with just upload via FTP and updating basic settings in few CodeIgniter files, even if you don’t have SSH access.
On the other side, for more serious projects where you need a PHP MVC framework Laravel is obvious winner. There are many PHP MVC frameworks, but Laravel provides more comfort. The whole environment of Laravel is more elegant. Yes, it is complex, especially at start, but at the same time it has more possibilities (thanks to packages), and pays off in terms of more reliable and secure final architecture.
Both CodeIgniter and Laravel have good documentation, but Laravel overall has much better support and more active community.
I mentioned, that Laravel is more elegant. Is it important? Well, yes. You can arrive at your destination driving an “average citizen” car or a car designed by Horacio Pagani. Does it make any difference? Yes, it does makes huge difference, if code around you looks nice and is logical, especially when web development is you main work.
Laravel is only a very nice and beautiful tool to do some job. This is true, that Laravel has more steep learning curve compared to CodeIgniter, but keeping in mind the Laravel’s advantages it doesn’t matter at all.