CakePHP is an open source web application framework for producing web applications. It is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.
CakePHP started in 2005, when Ruby on Rails was gaining popularity. The community has since grown and spawned several sub-projects. CakePHP is not a port of Ruby on Rails to PHP, but appropriates many of its useful concepts.
Features of CakePHP
Like Rails, CakePHP makes it easier for the user to interface with the database with the active record pattern. It also encourages use of the model-view-controller architectural pattern.
Its features include:
- Compatible with versions 4 and 5 of PHP
- Integrated CRUD for datasource interaction
- Application scaffolding
- MVC architecture
- Built-in validation, Data sanitization, and Internationalization and localization
- Various Behaviors, Components and Helpers to minimize development time
- Unit testing using the SimpleTest framework, available in CakePHP version 1.2
CakePHP offers a CLI accessed by the “cake” command. There are several core console applications available in the library, among them:
- “acl” for the management of Access Control Lists
- “bake” for the generation of models, controllers and views
- “i18n” for application internationalization
- “schema” for database schema creation and migration.
- “testsuite” for running unit tests, including model, controller and web tests.
Developers can also create their own “shells” and shared functionality across these shells called “tasks” (in CakePHP’s parlance) The scripts have access to the application’s models and controllers. An example use-case for this would be the scheduled update of the application’s data from an RSS or other data feed, with the full power of the application logic and data relationships created with CakePHP.