CakePhp is useful if you need to implement a code with different modules (users, payments, pictures). CakePhp is useless if you need to build a quick project that requires a few lines of codes, it's faster to reuse and adapt code from old projects.
CodeIgniter is very well-suited to those beginning PHP web development, and who are tired of writing the same code over and over (like authentication mechanisms). It is a very good choice for those looking for a framework that will not try to "dictate" how their application is designed and which choices are made. Situations where highly modular code is required and where more advanced features like queuing and hooking are needed are situations where CodeIgniter is not a good choice. More modern frameworks like CakePHP and Laravel are much better-suited.
CodeIgniter is an MVC framework that allows us to organize our code in a manner that it is easier to maintain and update. If you are working in a team environment and building an application or website like our dashboard, then CodeIgniter is a great solution.
The biggest issue inherit in CakePHP, and why we switched to Laravel, is the base configuration of the program. Most people aree that CakePHP uses old (outdated, even dangerous) PHP habits. There is some truth in this: Cake has not been as quick to adapt to the newer PHP versions as they should. I was always surprised that with new major releases, from 2.4 to 2.5 for example, that the minimum version of PHP will never increase. For example, CakePHP only requires version 5.2.8 of PHP, but it would not have been difficult to update the minimum version at least 5.3 when adapting a new version.
Speed - our company had many issues scaling CakePHP to a medium size application software, even with using REDIS/memcache we would still run into many issues with the built-in ORM.
Faced some issue of session management, so that's why we used the Core Session library for that. It would be great if we could improve it a little bit.
Frameworks provide the option to setup all getters/setters, so having this option in it is a great idea.
Codeigniter's syntax patterns are expressive and elegant. Unit testing support. Well documented. but as CodeIgniter tries to retain backward compatibility with PHP 4, here comes Laravel to the rescue. It has good features and it is updated. Wikipedia has mentioned, “according to a March 2015 developer’s survey on PHP frameworks popularity, Laravel was listed as the most popular PHP framework of 2015, followed by Symfony2, Nette, CodeIgniter, Yii2, and others.
CodeIgniter has been a very good alternative for developing API endpoint for our Android applications and we received very good output through CodeIgniter.
Because the source code is smaller but comes with MVC pattern, it has the functionality to develop an application faster with MVC strategy.