No more CakePHP in our projects!
Most frameworks are MVC (model-controller-view) or a variant, and it is almost always faster, easier and maintainable compared to native codes. Likewise today we would like to share our experiences with CakePHP, a framework for PHP language.
- Once everyone get to know the CakePHP way, it is easy for team developments and saves a lot of time.
- ActiveRecord implementation along with Scaffolding makes the initial sketch of projects within days.
- CakePHP built in security features like parse SQL queries for injections saves a lot of time.
- The clear distribution of models, controllers and views to different folders makes individual team members only concentrate on their task at hand, like designers working on views while coders working on models independent of each other.
- Lot of active plugins and a huge community with people willing to help, almost all your questions are asked and answered by someone.
However today due to lot of development hurdles, which goes beyond these benefits along with our experiences with it we decided to look elsewhere and try other frameworks. The main reasons for looking at other frameworks were.
- CakePHP is too heavy and bulky, you just feel it in the speed of page loads, specially for small projects and for large projects it is just unbearable.
- A steep learning curve, for example a Class named Child must be named Children in the database! Thus we spend more time confirming the code to CakePHP standard than really coding.
- It is always the Cake way or error, hence database queries are hard and nested arrays make coding life difficult.
- The ORM is not really ORM and complex SQL joins are almost always not doable except with raw SQL queries.
- Revisiting a CakePHP project is always a headache, large projects are unmaintainable as they are very fragile. Resulting is slow ongoing and team developments.
So what next, today we are content with Laravel for custom developments and Silverstripe for cms driven development.