Después de haber realizado una selección de los mejores frameworks PHP donde menciono a 18 frameworks que ayudan bastante a agilizar el proceso de desarrollo de una aplicación web, esta vez quiero hablarte en concreto del framework CakePHP, este es un framework bastante maduro dando sus primeros pasos en el año 2005, es por esta y muchas razones más por las cuales voy a profundizarlo bastante.
Cuando nos decidimos por un framework (en este caso CakePHP) y queremos empezar a desarrollar nuestras aplicaciones, comúnmente nos haremos las siguientes preguntas:
¿Qué es CakePHP?
Es un framework o marco de trabajo que facilita el desarrollo de aplicaciones web, utilizando el patrón de diseño MVC (Modelo-vista-controlador), es de código abierto y se lo distribuye bajo la licencia MIT. El mayor objetivo de este framework es permitirnos trabajar de forma estructurada, rápida y sin perdida de flexibilidad.
¿Qué ventajas tengo al trabajar con un framework como CakePHP?
La principal ventaja es el rápido desarrollo web porque existe una integración con patrones de diseño (MVC) y esto implica que los desarrolladores no necesitan gastar el tiempo intentando resolver problemas que siempre estarán presentes ya que CakePHP ya tiene una solución anticipada para solventarlos. De esa forma es que el desarrollador estará siempre centrado en lo principal de una aplicación web que es construir una lógica y funcionalidad especifica acorde a los requerimientos de la aplicación.
¿Cómo funciona el patrón MVC con CakePHP?
MVC es un patrón de arquitectura de software que separa los datos de una aplicación de la interfaz de usuario y de la lógica de dicha aplicación, de tal forma se obtiene tres capas distintas: los datos que son los modelos, la lógica de la aplicación que se encuentran en los controladores y las interfaces que son las vistas.
Modelos en CakePHP
Cuando hablamos de un modelo en CakePHP nos referiremos siempre a una tabla de la base de datos en particular, es decir que cada tabla que componga la base de datos de la aplicación debe tener siempre un modelo que lo represente, este modelo realizará toda la interacción con las bases de datos. El modelo también definirá relaciones con otros modelos, eso quiere decir que las tablas de las bases de datos también se relacionarán entre si.
Controladores en CakePHP
Son los que controlan la lógica de la aplicación web, este recibirá peticiones y su lógica decidirá que respuesta es la que tiene que generar, generalmente contendrá llamadas a modelos para acceder a los datos si así se requiere para posteriormente enviar una respuesta que se visualizará mediante las vistas.
Vistas en CakePHP
Las vistas son las salidas de las respuestas que serán enviadas al usuario, generalmente esto se representa en código HTML y que a su vez contendrá código PHP. Las vistas será el medio por el cual el usuario interaccione con la aplicación web.
Como te habrás dado cuenta usar MVC en CakePHP nos trae muchas ventajas ayudándonos a estructurar el código en segmentos modulares y eso permite poder llevar a cabo de una manera más rápida cualquier cambio que sea requerido de tal forma que trabajos que a veces llegan a ser mas tediosos como la depuración y la modificación con CakePHP llegan a ser mucho mas sencillos.
A continuación te muestro un esquema de como trabajan estas tres capas en conjunto:
Como puedes observar en el esquema, este sigue una secuencia partiendo del usuario (Client) que realiza una petición llegando así al controlador, este controlador interactúa con el modelo para así acceder a los datos, para finalmente enviar una respuesta que será entregado al usuario mediante las vistas.
Más características de CakePHP
A parte de todo lo anterior mencionado, CakePHP nos brinda muchas características, a continuación te muestro mediante una lista mas de estas:
- Tiene un mínimo de configuración, con tan solo indicarle la base de datos a trabajar ya estarás listo para comenzar a hornear tus aplicaciones web.
- Utiliza bastantes convenciones, si bien CakePHP no necesita de mucha configuración, se tiene que seguir una serie de convenciones tanto en los nombres y localizaciones los cuales siempre tienen que ser respetados para seguir una linea de buenas prácticas y así poder sacarle el mayor provecho a este framework.
- CRUD de base de datos integrado, muy útil para realizar aplicaciones de forma instantánea, con esto puedes obtener prototipos para verificar que tu aplicación y su estructura de base de datos esta bien desarrollada.
- URLs amigables.
- Helpers (ayudantes) para AJAX, JavaScript, HTML, formularios y más.
- CakePHP viene con herramientas integradas para la validación de datos de entrada, protección CSRF, protección de la manipulación de formularios, la prevención de inyección SQL, XSS, ayudando a mantener la aplicación.
- Componentes de autenticación y sesiones.
- Almacenamiento en cache.
- Scaffolding de las aplicaciones.
Como puedes ver CakePHP trae una variedad de ventajas, es un framework bastante completo y sobre todo flexible, hace que el desarrollo web ya no sea tan monótono porque ofrece las herramientas para comenzar a escribir código que realmente necesitas y no estar re inventando la rueda cada vez que emprendas un nuevo proyecto.
Ahora dime tu, que opinas de este framework, dime si te gustaría aprender mas sobre CakePHP. Este es un artículo introductorio donde quiero aprovechar en darte la noticia que próximamente estaré realizando una serie de videotutoriales sobre este framework en su última versión, donde aprenderás desde cero, es decir conocer su estructura, configuración, sintaxis y todas las características anteriormente mencionadas, así es que no te puedes perder ni un artículo más de mi blog ya que periódicamente iré subiendo los videotutoriales. Mientras tanto te invito a que visites la página oficial de CakePHP y te des cuenta tu mismo las grandes ventajas que nos trae trabajar con este framework y si puedes de paso dale una lectura a lo que necesitas para aprender un framework PHP donde no te hablo de herramientas de desarrollo sino de los conocimientos previos que necesitas para poder comprender de mejor forma el trabajo con los frameworks PHP.
Si tienes alguna duda o sugerencia no dudes en dejar un comentario que yo responderé en la brevedad posible y si este artículo te pareció interesante compártelo en las redes sociales así mucha gente se beneficia conociendo este framework 8-)
Página oficial de CakePHP: http://cakephp.org/
Saludos!!!

ingeniero me gsutaria saber si tiene algun tutorial de cakephp para la creacion de logins, y permisos es decir dependiendo del tipo de cuenta tiene siertas restrigciones o cceso a siertos contenidos
Hola Cristian, si lo tengo pensando hacer como parte del Curso de CakePHP, una vez que termine la aplicación que estamos desarrollando para así poder tratar el tema de los permisos, te invito a que sigas el curso tanto en los artículos del Blog como en el canal de YouTube. Saludos!!!
gracias ingeniero acatare sus recomendaciones y estaré atento a para cuando abordes este tema, exitos y saludos desde colombia
Gracias 8-) igualmente para ti. Saludos Cristian!
Estoy siguiendo muy de cerca tus tutoriales, hace casi 2 años colaboré en un proyecto que usaba cake. No lo había utilizado mas hasta ahora que quiero profundizar mis conocimientos en este framework. Gracias por estos tutos. Saludos desde vzla
Gracias por tu comentario Eliecer y espero que el curso de CakePHP junto con los artículos que publico en el Blog te sea de ayuda para profundizar tus conocimientos con el framework. Saludos!!!
Hola buen dia, segui los tutos, muy buenos por cierto, ademas donde puedo ver el tutorial hacerca de usuarios, roles en cakephp? gracias, saludos de fr.
Hola Dan, hoy lo publiqué, ahora mismo te facilito el enlace http://www.edsonmm.com/componente-de-autenticacion-en-cakephp-modulo-de-usuarios/ es la primera de dos partes donde trabajamos con el componente de autenticación en CakePHP. Saludos y gracias por seguir mi trabajo.