From Wikipedia, the free encyclopedia

Jump to: navigation, search
Developed by Cake Software Foundation, Inc.
Latest release / 2009-03-19; 15 days ago
Written in PHP
Operating system Cross-platform
Type Web application framework
License MIT License

CakePHP is an open source web application framework for producing web applications written in PHP. It is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.[1]


[edit] History

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.

The Mambo Foundation announced in 2007 that it would utilize the CakePHP framework for future versions of its widely used content management system, calling CakePHP a "solid choice and certainly one of the top frameworks available today."[2]

[edit] Features of CakePHP

Like Rails, CakePHP makes it easier for the user to interface with the database with active records. It also encourages use of the model-view-controller architectural pattern.

  • Compatible with PHP4 and PHP5
  • Integrated CRUD for database and simplified querying
  • Request dispatcher with custom URLs
  • Templating (PHP syntax with helper methods)
  • View helpers for AJAX, Javascript, HTML forms
  • Website directory independent
  • Built-in validation
  • Access control lists (ACL)
  • Application scaffolding[3]
  • Data sanitization
  • Security, session, and request handling components
  • View caching
  • Unit testing using the SimpleTest framework, available in CakePHP version 1.2

[edit] Console Applications

CakePHP offers a CLI, or Command-line interface, accessed by the "cake" command. There are three core console applications available in the library: "bake" for the generation of models, controllers and views; "acl" for the management of Access Control Lists; and "schema" for database schema creation and migration.

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.

[edit] Model-View-Controller

CakePHP adheres to the MVC (Model-view-controller) architectural pattern separating code logic from the user interface. In MVC, the model represents the information (the data) of the application; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages the communication of data and the business rules used to manipulate the data to and from the model.[4]

[edit] See also

[edit] References

  • Fabio Cevasco, "CakePHP Recipes", New Riders Publishing, 2007, ISBN 0321497732
  • David Golding, "Beginning CakePHP: from Novice to Professional", Apress, 2008, ISBN 1430209771

[edit] External links

Personal tools