CakePHP: Difference between revisions
Adding local short description: "Open-source web framework in PHP", overriding Wikidata description "web application framework" (Shortdesc helper) |
Count Count (talk | contribs) Reverted 1 edit by 61.2.102.26 (talk): Spam |
||
(25 intermediate revisions by 21 users not shown) | |||
Line 5: | Line 5: | ||
| developer = [http://cakefoundation.org/ Cake Software Foundation, Inc.] |
| developer = [http://cakefoundation.org/ Cake Software Foundation, Inc.] |
||
| released = {{release date and age|2005|04}} |
| released = {{release date and age|2005|04}} |
||
| latest release version = <!-- If you update [[Template:CakePHP version]], it will automatically update this page and [[Comparison of web frameworks]]--> {{CakePHP version}} |
| latest release version = <!-- If you update [[Template:CakePHP version]], it will automatically update this page and [[Comparison of web frameworks]]{{dn|date=August 2022}}--> {{CakePHP version}} |
||
| latest release date = {{CakePHP version|releasedate}} |
| latest release date = {{CakePHP version|releasedate}} |
||
| latest preview version = |
| latest preview version = |
||
| latest preview date = |
|||
| latest preview date = 2020-05-31<ref>{{cite web|url=https://bakery.cakephp.org/2020/05/31/cakephp_410RC1_released.html|title=CakePHP 4.1.0-RC1 Released|accessdate=1 June 2020|date=31 May 2020}}</ref> |
|||
| programming language = [[PHP]] |
| programming language = [[PHP]] |
||
| operating system = [[Cross-platform]] |
| operating system = [[Cross-platform]] |
||
| platform = [[PHP]] |
| platform = [[PHP]] 8.1+ |
||
| language = [[Multilingual]] |
| language = [[Multilingual]] |
||
| genre = [[Web framework]] |
| genre = [[Web framework]] |
||
Line 17: | Line 17: | ||
| website = {{Official URL}} |
| website = {{Official URL}} |
||
}} |
}} |
||
'''CakePHP''' is an [[open-source software|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]].<ref>{{cite web|url = http://book.cakephp.org/3.0/en/intro.html|title = CakePHP Manual - CakePHP at a Glance| |
'''CakePHP''' is an [[open-source software|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]].<ref>{{cite web|url = http://book.cakephp.org/3.0/en/intro.html|title = CakePHP Manual - CakePHP at a Glance|access-date = 2015-03-09}}</ref> |
||
CakePHP uses well-known [[software engineering]] concepts and [[software design pattern]]s, such as [[convention over configuration]], [[model–view–controller]], [[active record pattern|active record]], [[junction table|association data mapping]], and [[front controller]]. |
CakePHP uses well-known [[software engineering]] concepts and [[software design pattern]]s, such as [[convention over configuration]], [[model–view–controller]], [[active record pattern|active record]], [[junction table|association data mapping]], and [[front controller]]. |
||
Line 23: | Line 23: | ||
== History == |
== History == |
||
CakePHP started in April 2005, when |
CakePHP started in April 2005, when the Polish programmer Michal Tatarynowicz<ref>{{cite web|url=https://cakephp.lighthouseapp.com/contributors|title=Contributors - cakephp|website=cakephp.lighthouseapp.com}}</ref> wrote a minimal version of a [[rapid application development]] framework in [[PHP]], dubbing it Cake.<ref>{{cite web|url=https://book.cakephp.org/1.1/en/introduction-to-cakephp.html|title=Introduction to CakePHP - 1.1|website=book.cakephp.org}}</ref><ref>{{cite web |url=http://neurowww.cwru.edu/cakephp/history_of_cakephp# |title=Cakephp:history_of_cakephp [Neurosciences] |access-date=2012-08-31 |archive-url=https://web.archive.org/web/20160303211002/http://neurowww.cwru.edu/cakephp/history_of_cakephp# |archive-date=2016-03-03 |url-status=dead }}</ref><ref name="colorado">{{cite web|url=http://www.cs.colorado.edu/~kena/classes/5448/s11/presentations/cakephp.pdf |title=Listing |website=www.cs.colorado.edu |access-date=2019-07-01}}</ref> He published the framework under the Public Domain license - which was soon changed to MIT License - and opened it up to the online community of developers.{{fact|date=January 2020}} |
||
In December 2005, L. Masters and G. J. Woodworth founded the Cake Software Foundation to promote development related to CakePHP.<ref name="colorado"/> Version 1.0 was released in May 2006. |
In December 2005, L. Masters and G. J. Woodworth founded the Cake Software Foundation to promote development related to CakePHP.<ref name="colorado"/> Version 1.0 was released in May 2006. |
||
One of the project's inspirations was [[Ruby on Rails]], using many of its concepts. |
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.<ref>{{cite web | url=http://cakeforge.org | title=CakeForge | |
The community has since grown and spawned several sub-projects.<ref>{{cite web | url=http://cakeforge.org | title=CakeForge | access-date=2009-09-05 | url-status=dead | archive-url=https://web.archive.org/web/20090908212814/http://cakeforge.org/ | archive-date=2009-09-08 }}</ref><ref>{{cite web | url=http://thechaw.com | title=TheChaw | access-date=2009-09-05 }}</ref> |
||
In October 2009, project manager Woodworth and developer N. Abele resigned from the project to focus on their own projects, including the [[Lithium (software)|Lithium web framework]] (previously part of the CakePHP project). The remaining development team continued to focus on the original roadmap that was previously defined.<ref>{{cite web | url=http://bakery.cakephp.org/articles/markstory/2009/10/23/the-cake-is-still-rising | title=The Cake is Still Rising | |
In October 2009, project manager Woodworth and developer N. Abele resigned from the project to focus on their own projects, including the [[Lithium (software)|Lithium web framework]] (previously part of the CakePHP project). The remaining development team continued to focus on the original roadmap that was previously defined.<ref>{{cite web | url=http://bakery.cakephp.org/articles/markstory/2009/10/23/the-cake-is-still-rising | title=The Cake is Still Rising | access-date=2009-10-25 | archive-url=https://web.archive.org/web/20101010183332/http://bakery.cakephp.org/articles/markstory/2009/10/23/the-cake-is-still-rising# | archive-date=2010-10-10 | url-status=dead }}</ref> |
||
== Features == |
== Features == |
||
''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_(software)|Composer]].<ref>{{Cite web|url = https://book.cakephp.org/4/en/plugins.html | title=Plugins | |
''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_(software)|Composer]].<ref>{{Cite web|url = https://book.cakephp.org/4/en/plugins.html | title=Plugins | access-date=2020-03-13}}</ref> |
||
''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 [[Table (database)|database tables]], and entity classes representing individual [[Row (database)|table rows]].<ref>{{Cite web|url = https://book.cakephp.org/4/en/orm.html | title=ORM | |
''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 [[Table (database)|database tables]], and entity classes representing individual [[Row (database)|table rows]].<ref>{{Cite web|url = https://book.cakephp.org/4/en/orm.html | title=ORM | access-date=2020-03-13}}</ref> |
||
''Query builder'' was introduced in CakePHP 3 as a companion to the new ORM. The query builder |
''Query builder'' was introduced in CakePHP 3 as a companion to the new ORM. The query builder provides 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.<ref>{{Cite web|url = https://book.cakephp.org/4/en/orm/query-builder.html | title=Query builder | access-date=2020-03-13}}</ref> |
||
''Routing and reverse routing''. The CakePHP router allows for complex [[Hypertext_Transfer_Protocol|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]]. |
''Routing and reverse routing''. The CakePHP router allows for complex [[Hypertext_Transfer_Protocol|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]]. |
||
Line 44: | Line 44: | ||
''View Cells'' provide small, mini-controllers that can invoke view logic and render templates. These are ideal for creating small, reusable page components. |
''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 schema|database schemas]]. These make it possible to ensure that changes to application logic and corresponding database changes are kept |
''Migrations'' provide [[version control]] for [[database schema|database schemas]]. These make it possible to ensure that changes to application logic and corresponding database changes are kept synchronised. 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. |
''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 [[Form (HTML)|forms]] that are tied to the model layer for both data types and validation. |
''Form builder and validator'' allows for the programmatic generation of [[Form (HTML)|forms]] that are tied to the model layer for both data types and validation.<ref>{{Cite web|url = https://book.cakephp.org/4/en/views/helpers/form.html | title=Form helper | access-date=2020-03-13}}</ref> |
||
''CakePHP Bake'' is a tool for automatically generating application [[Skeleton (computer programming)|skeletons]] and [[boilerplate code]]. It uses a pre-existing database schema to infer the correct [[relation (database)|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 [[Create, read, update and delete|CRUD]] application with zero coding.<ref>{{Cite web|url = https://www.codeforest.net/cakephp-from-scratch-baking-our-application | title=CakePHP 3: Bake by example | |
''CakePHP Bake'' is a tool for automatically generating application, [[Skeleton (computer programming)|skeletons]] and [[boilerplate code]]. It uses a pre-existing database schema to infer the correct [[relation (database)|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 [[Create, read, update and delete|CRUD]] application with zero coding.<ref>{{Cite web|url = https://www.codeforest.net/cakephp-from-scratch-baking-our-application | title=CakePHP 3: Bake by example | date=31 August 2010 | access-date=2020-03-13}}</ref> |
||
== Conferences == |
== Conferences == |
||
Line 56: | Line 56: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Year<ref>{{Cite web |title=Events |url=https://cakefest.org/archive |access-date=2024-03-21 |website=cakefest.org}}</ref> |
|||
! Year |
|||
! Location |
! Location |
||
|- |
|||
|2024 |
|||
|[[Esch-sur-Alzette|Esch-sur-Alzette, Luxembourg]] |
|||
|- |
|||
|2023 |
|||
|[[Los Angeles|Los Angeles, USA]] |
|||
|- |
|||
|2022 |
|||
|Virtual |
|||
|- |
|||
|2021 |
|||
|Virtual |
|||
|- |
|||
|2020 |
|||
|Virtual |
|||
|- |
|- |
||
|2019 |
|2019 |
||
Line 93: | Line 108: | ||
|- |
|- |
||
| 2008 |
| 2008 |
||
| [[Orlando|Orlando, FL, USA]] |
| [[Orlando, Florida|Orlando, FL, USA]] |
||
|} |
|} |
||
== Training == |
== Training == |
||
Official online training courses sponsored by CakeDC. Monthly live training covering a range of topics |
Official online training courses sponsored by CakeDC. Monthly live training covering a range of topics including: |
||
* Standard CakePHP 2 Training Course |
* Standard CakePHP 2 Training Course |
||
Line 105: | Line 120: | ||
==See also== |
==See also== |
||
*[[Comparison of web frameworks]] |
*[[Comparison of server-side web frameworks|Comparison of web frameworks]] |
||
==References== |
==References== |
||
Line 112: | Line 127: | ||
===Bibliography=== |
===Bibliography=== |
||
{{Refbegin}} |
{{Refbegin}} |
||
*{{Cite |
*{{Cite book |
||
|first1 = Jamie |
|first1 = Jamie |
||
|last1 = Munro |
|last1 = Munro |
||
Line 120: | Line 135: | ||
|publisher = [[Createspace]] |
|publisher = [[Createspace]] |
||
|page = 170 |
|page = 170 |
||
|isbn = 1-4609-5439- |
|isbn = 978-1-4609-5439-3 |
||
|url = https://www.createspace.com/3571360 |
|url = https://www.createspace.com/3571360 |
||
|postscript = . |
|||
|access-date = May 20, 2011 |
|access-date = May 20, 2011 |
||
|archive-url = https://web.archive.org/web/20170714100141/https://www.createspace.com/3571360 |
|archive-url = https://web.archive.org/web/20170714100141/https://www.createspace.com/3571360 |
||
Line 128: | Line 142: | ||
|url-status = dead |
|url-status = dead |
||
}} |
}} |
||
*{{Cite |
*{{Cite book |
||
|first1 = David |
|first1 = David |
||
|last1 = Golding |
|last1 = Golding |
||
Line 136: | Line 150: | ||
|publisher = [[Apress]] |
|publisher = [[Apress]] |
||
|page = 344 |
|page = 344 |
||
|isbn = 1-4302-0977- |
|isbn = 978-1-4302-0977-5 |
||
|url = http://www.apress.com/book/view/9781430209775 |
|url = http://www.apress.com/book/view/9781430209775 |
||
|postscript = . |
|||
|access-date = 2009-06-12 |
|access-date = 2009-06-12 |
||
|archive-url = https://web.archive.org/web/20110112173826/http://apress.com/book/view/9781430209775# |
|archive-url = https://web.archive.org/web/20110112173826/http://apress.com/book/view/9781430209775# |
||
Line 144: | Line 157: | ||
|url-status = dead |
|url-status = dead |
||
}} |
}} |
||
*{{Cite |
*{{Cite book |
||
|first1 = Kai |
|first1 = Kai |
||
|last1 = Chan |
|last1 = Chan |
||
Line 156: | Line 169: | ||
|publisher = [[Apress]] |
|publisher = [[Apress]] |
||
|page = 400 |
|page = 400 |
||
|isbn = 1-4302-1578- |
|isbn = 978-1-4302-1578-3 |
||
|url = http://www.apress.com/book/view/9781430215783 |
|url = http://www.apress.com/book/view/9781430215783 |
||
|postscript = . |
|||
|access-date = 2009-06-12 |
|access-date = 2009-06-12 |
||
|archive-url = https://web.archive.org/web/20101223164204/http://apress.com/book/view/9781430215783# |
|archive-url = https://web.archive.org/web/20101223164204/http://apress.com/book/view/9781430215783# |
||
Line 164: | Line 176: | ||
|url-status = dead |
|url-status = dead |
||
}} |
}} |
||
*{{Cite |
*{{Cite book |
||
|first1 = James |
|first1 = James |
||
|last1 = Watts |
|last1 = Watts |
||
Line 176: | Line 188: | ||
|isbn = 9781782160083 |
|isbn = 9781782160083 |
||
|url = https://www.packtpub.com/eu/web-development/cakephp-2-application-cookbook |
|url = https://www.packtpub.com/eu/web-development/cakephp-2-application-cookbook |
||
|postscript = . |
|||
|access-date = 2014-08-05 |
|access-date = 2014-08-05 |
||
}} |
}} |
Latest revision as of 12:53, 17 June 2024
Developer(s) | Cake Software Foundation, Inc. |
---|---|
Initial release | April 2005 |
Stable release | |
Repository | |
Written in | PHP |
Operating system | Cross-platform |
Platform | PHP 8.1+ |
Available in | Multilingual |
Type | Web framework |
License | MIT License |
Website | cakephp |
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.[2]
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 the Polish programmer Michal Tatarynowicz[3] wrote a minimal version of a rapid application development framework in PHP, dubbing it Cake.[4][5][6] He published the framework under the Public Domain license - which was soon changed to 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.[6] 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.[7][8]
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.[9]
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.[10]
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.[11]
Query builder was introduced in CakePHP 3 as a companion to the new ORM. The query builder provides 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.[12]
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 synchronised. 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.[13]
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.[14]
Conferences
[edit]Year[15] | Location |
---|---|
2024 | Esch-sur-Alzette, Luxembourg |
2023 | Los Angeles, USA |
2022 | Virtual |
2021 | Virtual |
2020 | Virtual |
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]- ^ "CakePHP 5.0.7 Released". CakePHP Blog. Retrieved 2024-05-05.
- ^ "CakePHP Manual - CakePHP at a Glance". Retrieved 2015-03-09.
- ^ "Contributors - cakephp". cakephp.lighthouseapp.com.
- ^ "Introduction to CakePHP - 1.1". book.cakephp.org.
- ^ "Cakephp:history_of_cakephp [Neurosciences]". Archived from the original on 2016-03-03. Retrieved 2012-08-31.
- ^ a b "Listing" (PDF). www.cs.colorado.edu. Retrieved 2019-07-01.
- ^ "CakeForge". Archived from the original on 2009-09-08. Retrieved 2009-09-05.
- ^ "TheChaw". Retrieved 2009-09-05.
- ^ "The Cake is Still Rising". Archived from the original on 2010-10-10. Retrieved 2009-10-25.
- ^ "Plugins". Retrieved 2020-03-13.
- ^ "ORM". Retrieved 2020-03-13.
- ^ "Query builder". Retrieved 2020-03-13.
- ^ "Form helper". Retrieved 2020-03-13.
- ^ "CakePHP 3: Bake by example". 31 August 2010. Retrieved 2020-03-13.
- ^ "Events". cakefest.org. Retrieved 2024-03-21.
Bibliography
[edit]- Munro, Jamie (April 9, 2011). Rapid Application Development With CakePHP (1st ed.). Createspace. p. 170. ISBN 978-1-4609-5439-3. Archived from the original on July 14, 2017. Retrieved May 20, 2011.
- Golding, David (July 21, 2008). Beginning CakePHP: from Novice to Professional (1st ed.). Apress. p. 344. ISBN 978-1-4302-0977-5. Archived from the original on 2011-01-12. Retrieved 2009-06-12.
- Chan, Kai; Omokore, John; Miller, Richard (December 2, 2008). Practical CakePHP Projects (1st ed.). Apress. p. 400. ISBN 978-1-4302-1578-3. Archived from the original on 2010-12-23. Retrieved 2009-06-12.
- Watts, James; González, Jorge (August 5, 2014). CakePHP 2 Application Cookbook (1st ed.). packtpub. p. 346. ISBN 9781782160083. Retrieved 2014-08-05.