CakePHP

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
CakePHP
Cake-logo.png
Developer(s)Cake Software Foundation, Inc.
Initial releaseApril 2005; 15 years ago (2005-04)
Stable release
4.1.6[1] / 2020-11-07[±]
Preview release
4.2.0-beta1 / November 1, 2020; 22 days ago (2020-11-01)[2]
Repository Edit this at Wikidata
Written inPHP
Operating systemCross-platform
PlatformPHP 5.6.0+
Available inMultilingual
TypeWeb framework
LicenseMIT License
Websitecakephp.org Edit this at Wikidata

CakePHP is an open-source web framework. It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.[3]

CakePHP uses well-known software engineering concepts and software design patterns, such as convention over configuration, model–view–controller, active record, association data mapping, and front controller.

History[edit]

CakePHP started in April 2005, when a Polish programmer Michal Tatarynowicz[4] wrote a minimal version of a rapid application development framework in PHP, dubbing it Cake.[5][6][7] He published the framework under the MIT license, and opened it up to the online community of developers.[citation needed]

In December 2005, L. Masters and G. J. Woodworth founded the Cake Software Foundation to promote development related to CakePHP.[7] Version 1.0 was released in May 2006.

One of the project's inspirations was Ruby on Rails, using many of its concepts. The community has since grown and spawned several sub-projects.[8][9]

In October 2009, project manager Woodworth and developer N. Abele resigned from the project to focus on their own projects, including the Lithium web framework (previously part of the CakePHP project). The remaining development team continued to focus on the original roadmap that was previously defined.[10]

Features[edit]

Plugins allow developers to package combinations of controllers, models, views and other classes for reuse in multiple applications and by other developers. Since CakePHP 3 it has been possible to install plugins using Composer.[11]

CakePHP ORM (object-relational mapping) is an advanced PHP hybrid of the active record pattern and the data mapper pattern, borrowing core concepts from both. The CakePHP ORM uses two primary object types, the table class representing database tables, and entity classes representing individual table rows.[12][13]

Query builder was introduced in CakePHP 3 as a companion to the new ORM. The query builder providers a set of classes and methods for programmatically building SQL queries instead of writing them by hand. The ORM makes extensive use of the query builder.[13][14]

Routing and reverse routing. The CakePHP router allows for complex HTTP application routing, routing incoming requests to the correct controller and action. Reverse routing creates a relationship between routes and links, ensuring that links are always generated with the correct uniform resource locator.

View Cells provide small, mini-controllers that can invoke view logic and render templates. These are ideal for creating small, reusable page components.

Migrations provide version control for database schemas. These make it possible to ensure that changes to application logic and corresponding database changes are kept syncronised. This greatly simplifies both CakePHP application deployment, but also development in multi-developer teams. The CakePHP migration tool is based on the Phinx project.

Automatic pagination to make it easy for developers to paginate result sets generated by the ORM or Query Builder.

Form builder and validator allows for the programmatic generation of forms that are tied to the model layer for both data types and validation. [15]

CakePHP Bake is a tool for automatically generating application skeletons and boilerplate code. It uses a pre-existing database schema to infer the correct data relations and data types and using that to generate a full set of controllers, model object and view templates. It can generate a basic CRUD application with zero coding.[16]

Conferences[edit]

Year Location
2019 Tokyo, Japan
2017 New York, NY, USA
2016 Amsterdam, Netherlands
2015 New York, NY, USA
2014 Madrid, Spain
2013 San Francisco, CA, USA
2012 Manchester, UK
2011 Manchester, UK
2010 Chicago, IL, USA
2009 Berlin, Germany
2008 Buenos Aires, Argentina
2008 Orlando, FL, USA

Training[edit]

Official online training courses sponsored by CakeDC. Monthly live training covering a range of topics including:

  • Standard CakePHP 2 Training Course
  • Standard CakePHP 3 Training Course
  • Advanced CakePHP 3 Training Course
  • Standard CakePHP 4 Training Course

See also[edit]

References[edit]

  1. ^ "CakePHP 4.1.6 Released". CakePHP Blog. Retrieved 2020-11-08.
  2. ^ "CakePHP 4.2.0-beta1 Released". CakePHP Blog. 1 November 2020. Retrieved 5 November 2020.
  3. ^ "CakePHP Manual - CakePHP at a Glance". Retrieved 2015-03-09.
  4. ^ "Contributors - cakephp". cakephp.lighthouseapp.com.
  5. ^ "Introduction to CakePHP - 1.1". book.cakephp.org.
  6. ^ "Archived copy". Archived from the original on 2016-03-03. Retrieved 2012-08-31.CS1 maint: archived copy as title (link)
  7. ^ a b "Listing" (PDF). www.cs.colorado.edu. Retrieved 2019-07-01.
  8. ^ "CakeForge". Archived from the original on 2009-09-08. Retrieved 2009-09-05.
  9. ^ "TheChaw". Retrieved 2009-09-05.
  10. ^ "The Cake is Still Rising". Archived from the original on 2010-10-10. Retrieved 2009-10-25.
  11. ^ "Plugins". Retrieved 2020-03-13.
  12. ^ "ORM". Retrieved 2020-03-13.
  13. ^ a b "My CakePHP 3 Review – Still Fresh, Still Hot". Retrieved 2020-03-13.
  14. ^ "Query builder". Retrieved 2020-03-13.
  15. ^ "Form helper". Retrieved 2020-03-13.
  16. ^ "CakePHP 3: Bake by example". Retrieved 2020-03-13.

Bibliography[edit]

External links[edit]