CakePHP es un framework web de código abierto . Sigue el enfoque modelo-vista-controlador (MVC) y está escrito en PHP , modelado a partir de los conceptos de Ruby on Rails y distribuido bajo la licencia MIT . [2]
CakePHP utiliza conceptos de ingeniería de software y patrones de diseño de software bien conocidos , como convención sobre configuración , modelo-vista-controlador , registro activo , mapeo de datos de asociación y controlador frontal .
CakePHP comenzó en abril de 2005, cuando el programador polaco Michal Tatarynowicz [3] escribió una versión mínima de un marco de desarrollo rápido de aplicaciones en PHP , llamándolo Cake. [4] [5] [6] Publicó el marco bajo la licencia de dominio público, que pronto se cambió a la licencia MIT, y lo abrió a la comunidad en línea de desarrolladores. [ cita requerida ]
En diciembre de 2005, L. Masters y GJ Woodworth fundaron la Cake Software Foundation para promover el desarrollo relacionado con CakePHP. [6] La versión 1.0 se lanzó en mayo de 2006.
Una de las inspiraciones del proyecto fue Ruby on Rails , del que se utilizaron muchos de sus conceptos. Desde entonces, la comunidad ha crecido y ha generado varios subproyectos. [7] [8]
En octubre de 2009, el director de proyectos Woodworth y el desarrollador N. Abele renunciaron al proyecto para centrarse en sus propios proyectos, incluido el marco web Lithium (anteriormente parte del proyecto CakePHP). El equipo de desarrollo restante continuó centrándose en la hoja de ruta original que se había definido previamente. [9]
Los complementos permiten a los desarrolladores empaquetar combinaciones de controladores, modelos, vistas y otras clases para su reutilización en múltiples aplicaciones y por parte de otros desarrolladores. Desde CakePHP 3 es posible instalar complementos mediante Composer . [10]
El ORM de CakePHP ( mapeo relacional de objetos ) es un híbrido avanzado de PHP del patrón de registro activo y el patrón de mapeador de datos , que toma prestados conceptos básicos de ambos. El ORM de CakePHP utiliza dos tipos de objetos principales, la clase de tabla que representa las tablas de la base de datos y las clases de entidad que representan las filas de las tablas individuales . [11]
El generador de consultas se introdujo en CakePHP 3 como complemento del nuevo ORM. El generador de consultas proporciona un conjunto de clases y métodos para generar consultas SQL mediante programación en lugar de escribirlas a mano. El ORM hace un uso extensivo del generador de consultas. [12]
Enrutamiento y enrutamiento inverso . El enrutador CakePHP permite el enrutamiento complejo de aplicaciones HTTP , enrutando las solicitudes entrantes al controlador y la acción correctos. El enrutamiento inverso crea una relación entre rutas y enlaces, lo que garantiza que los enlaces siempre se generen con el localizador uniforme de recursos correcto .
Las celdas de visualización proporcionan pequeños controladores que pueden invocar lógica de visualización y generar plantillas. Son ideales para crear componentes de página pequeños y reutilizables.
Las migraciones permiten controlar las versiones de los esquemas de bases de datos . Permiten garantizar que los cambios en la lógica de la aplicación y los cambios correspondientes en la base de datos se mantengan sincronizados. Esto simplifica enormemente la implementación de aplicaciones CakePHP, pero también el desarrollo en equipos de varios desarrolladores. La herramienta de migración de CakePHP se basa en el proyecto Phinx.
Paginación automática para facilitar a los desarrolladores la paginación de conjuntos de resultados generados por ORM o Query Builder.
El generador y validador de formularios permite la generación programática de formularios que están vinculados a la capa del modelo tanto para los tipos de datos como para la validación. [13]
CakePHP Bake es una herramienta para generar automáticamente aplicaciones, esqueletos y código repetitivo . Utiliza un esquema de base de datos preexistente para inferir las relaciones y los tipos de datos correctos y, a partir de ahí, genera un conjunto completo de controladores, objetos de modelo y plantillas de vista. Puede generar una aplicación CRUD básica sin necesidad de codificación. [14]
Cursos de formación online oficiales patrocinados por CakeDC. Formación mensual en directo que abarca una variedad de temas, entre los que se incluyen: