Comenzando con CakePHP
Prólogo
Bienvenido al paraíso del desarrollo web
Si usted lee el prólogo de un manual técnico, probablemente es que tenga mucho tiempo en sus manos. No somos celebridades, y usted está detrás del material, así que salte esta sección superflua y entre de lleno al manual.
Audiencia
Para poder leer este manual deberá estar moderadamente familiarizado con PHP. Algún conocimiento de los conceptos relacionados a la programación orientada a objetos también ayudará, aún cuando las secciones introductorias del presente manual puedan ayudarle a iniciarse en la teoría. Habiendo aclarado eso, debe decirse también que este material ha sido escrito para desarrolladores con cualquier nivel de conocimiento, para programadores que desean crear aplicaciones robustas y mantenibles de una forma rápida y entretenida.
Se debe aclarar, así también, que ciertas secciones tratan con tecnologías cuya explicación excede al alcance de este manual. Los detalles intrínsecos correspondientes a la administración de servidores Web, AJAX y JavaScript pueden mencionarse en diferentes secciones, pero en la mayor parte del contenido se tratará exclusivamente con CakePHP.
Iniciarse en CakePHP
¿Qué es CakePHP? ¿Por que usarlo?
CakePHP es un marco de desarrollo [framework] rápido para PHP, libre, de código abierto. Es una estructura fundamental para que los programadores creen aplicaciones Web. Nuestro objetivo principal es permitirle trabajar en una forma estructurada y rápida, sin pérdida de flexibilidad.
CakePHP le quita la monotonía al desarrollo web. Le ofrecemos todas las herramientas necesarias para empezar la codificación de lo que realmente necesita hacerse: la lógica específica de su aplicación. En vez de reinventar la rueda cada vez que comience un nuevo proyecto, obtenga una copia de CakePHP y comience con lo realmente esencial de su aplicación.
CakePHP tiene un activo equipo de desarrolladores y comunidad, brindándole gran valor al proyecto. Además de mantenerle alejado de reinventar la rueda, usar CakePHP significa que el núcleo de su aplicación está bien probado y es constantemente mejorado.
He aquí una breve lista de características que disfrutará al utilizar CakePHP:
- Activa y amistosa comunidad
- Licencia flexible
- Compatible con PHP4 y PHP5
- CRUD integrado para la interacción con la base de datos
- Soporte de aplicación [scaffolding]
- Generación de código
- Arquitectura Modelo Vista Controlador (MVC)
- Despachador de peticiones [dispatcher], con URLs y rutas personalizadas y limpias
- Validación integrada
- Plantillas rápidas y flexibles (sintaxis de PHP, con ayudantes[helpers])
- Ayudantes para AJAX, Javascript, formularios HTML y más
- Componentes de Email, Cookie, Seguridad, Sesión y Manejo de solicitudes
- Flexibles listas de control de acceso
- Limpieza de datos
- Caché flexible
- Localización
- Funciona en cualquier subdirectorio del sitio web, con poca o ninguna configuración de Apache
Dónde obtener ayuda
Has comenzado en el lugar correcto. Este manual (y la API), probablemente deberían ser el primer lugar al que dirigirse para obtener respuestas. Como ocurre con muchos otros proyectos de código abierto, tenemos gente nueva con regularidad. Primero haga su mejor esfuerzo por responder a sus preguntas usted mismo. Las respuestas pueden demorarse, pero las recordará por un largo plazo, y reducirá así nuestra carga de soporte. Tanto el manual como la API tienen una versión en línea.
Si se ha quedado atorado, consúltenos en el canal de IRC de CakePHP. Por lo general, alguien del equipo de desarrollo suele estar conectado, especialmente durante las horas de luz solar correspondiente a los usuarios de América del Norte y América del Sur. Nos encantaría saber de usted, si necesita ayuda, o quiere encontrar usuarios en su área, o si desea donar su flamante coche deportivo.
#cakephp@irc.freenode.net
Existe también un canal de IRC dedicado a la comunidad hispano-parlante:
#cakephp-es@irc.freenode.net
La CakePHP Bakery (La Panadería de CakePHP) es un depósito de todas las cosas relacionadas con CakePHP. Navéguelo si está buscando tutoriales, casos de estudio y ejemplos de código. Una vez que esté familiarizado con CakePHP, acceda para compartir sus conocimientos con la comunidad.
CakeForge es otro recurso que los desarrolladores pueden utilizar para promocionar los proyectos CakePHP que deseen compartir con los demás. Si usted está buscando (o quiere compartir) un interesante componente o un plugin recomebdale, considere CakeForge.
El sitio web oficial de CakePHP es siempre un gran lugar para visitar. Cuenta con enlaces a herramientas de desarrollo frecuentemente utilizadas, videos, oportunidades de donar, y descargas.
CakePHP también tiene un muy activo grupo de Google. Puede ser un excelente recurso para encontrar respuestas archivadas, preguntas frecuentes, y obtener respuestas a los problemas inmediatos.
http://groups.google.com/group/cake-php/
Si está buscando un grupo de google donde se pueda hablar español, considere entonces el grupo para la comunidad hispano-parlante.
Entendiendo Modelo-Vista-Controlador
Visión general
Las aplicaciones CakePHP bien escritas siguen el patrón de diseño de software MVC (Modelo-Vista-Controlador). Programar utilizando MVC consiste en separar la aplicación en tres partes principales. El modelo representa los datos de la aplicación, la vista hace una presentación del modelo de datos, y el controlador maneja y enruta las peticiones [requests] hechas por los usuarios.
IMAGEN
Figura 1: Una petición MVC básica
La figura 1 muestra un ejemplo pelado de una petición [request] MVC en CakePHP. A efectos ilustrativos, supongamos que un usuario llamado Ricardo acaba de hacer clic en el enlace "¡Comprar un pastel personalizado ahora!" de la página de inicial de la aplicación.
- Ricardo hace clic en el enlace apuntando a http://www.ejemplo.com/pasteles/comprar, y su navegador hace una petición al servidor web.
- El despachador comprueba la URL de la petición (/pasteles/comprar), y le pasa la petición al controlador adecuado.
- El controlador realiza lógica de aplicación específica. Por ejemplo, puede comprobar si Ricardo ha iniciado sesión.
- El controlador también utiliza modelos para acceder a los datos de la aplicación. La mayoría de las veces los modelos representan tablas de una base de datos, aunque también podrían representar entradas LDAP, canales RSS, o ficheros en el sistema. En este ejemplo, el controlador utiliza un modelo para buscar la última compra de Ricardo en la base de datos.
- Una vez que el controlador ha hecho su magia en los datos, se los pasa a la vista. La vista toma los datos y los deja listos para su presentación al usuario. La mayoría de las veces las vistas en CakePHP vienen en formato HTML, pero una vista tan fácilmente podría ser un PDF, documento XML, o un objeto JSON dependiendo de sus necesidades.
- Una vez que el objeto encargado de procesar vistas en CakePHP ha utilizado los datos del controlador para construir una vista completa, el contenido es devuelto al navegador de Ricardo.
Casi todas las peticiones a su aplicación seguirán este patrón básico. Vamos a completar algunos detalles específicos de Cake más adelante, así que por favor mantenga esto en mente a medida que avanzamos.
Beneficios
¿Por qué utilizar MVC? Porque es un patrón de diseño de software de eficacia probada, que convierte una aplicación en un paquete mantenible, modular y desarrollado rápidamente. Elaborar las tareas de la aplicación en distintos modelos, vistas y controladores hace que su aplicación sea muy ligera sobre sus pies. Las nuevas características se añaden fácilmente, y las nuevas caras para las características viejas son hechas en un chasquido de dedos. El diseño modular y por separado también permite a los diseñadores y desarrolladores trabajar simultáneamente, incluyendo la capacidad de hacer un prototipo rápidamente. La separación también permite a los desarrolladores hacer cambios en una parte de la aplicación sin que ello afecte a las demás.
Si usted nunca ha construido una aplicación de esta manera, toma algún tiempo acostumbrarse, pero nos sentimos confiados de que una vez que haya construido su primera aplicación CakePHP, no va a querer regresar.

login to add a comment