Archivo

Entradas Etiquetadas ‘tutorial’

Cakephp: tu primer proyecto

Miércoles, 16 de Abril de 2008

Usualmente todos los que hemos trabajado con PHP después de un tiempo conociendo el lenguje, llegamos a una misma conclusión en cuanto al código que se puede crear: es un desastre. A pesar de que la responsabilidad de un mal código recae completamente sobre el desarrollador, el lenguaje se lleva también parte de los méritos.

PHP nació de una idea e automatizar ciertas actividades repetitivas en la creación de sitios web, no como un leguaje bien estructurado y definido como lo pueden ser Java, Python y Ruby. Sin embargo su enfoque pragmático y completamente orientado a resolver problemas en el reino del hipertexto lo convirtieron en el leguaje más popular para construir aplicaciones en Internet.

Desde hace un tiempo, PHP se ha reinventado a sí mismo para tratar de alcanzar a sus amigos más estructurados, y para sumarse a la lista de lenguajes orientados a objetos. Aunque no es obligatorio, PHP puede ser utilizado con un enfoque completamente OO, lo cual sin duda ayuda a organizar en código en módulos auto-contenidos, bien cohesionados y a su vez independientes del resto de la arquitectura.

No obstante, es difícil evitar la naturaleza promiscua y rebelde intrínseca de PHP, debido a que no existe esa restricción a la forma en que debe ser desarrollados los componentes. Aunque esto le da al desarrollador la libertad máxima para programar lo que desee, es una pesadilla de dimensiones titánicas para nuevos programadores que deseen sumarse al proyecto. Sin ir muy lejos, de mis propias aplicaciones en los comienzos de PHP, entiendo muy poco de lo que hice.

CakePHP al rescate

PHP necesitaba un framework, y lamentablemente según algunas opiniones, de un momento aparecieron de la nada decenas de ellos, algunos buenos, otros no tanto. Fue en algún momento de la historia que hace su aparición el famoso Ruby on Rails, framework para el lenguaje Ruby, que trae consigo novedosas ideas sobre cómo debe construirse una aplicación web, siendo una de la más emblemáticas la de “convención en vez de configuración”.

Ruby on Rails, se convirtió en una moda. En un instante ya habían cientos de personas evangelizando tanto el lenguaje como el framework, al punto de un fanatismo irracional. Quizás no tan irracional, la facilidad que ofrece para la creación ágil de proyectos no tiene precedentes. Por eso no es de extrañar que empezaran a salir al aire copias del framework en distintos lenguajes de programación. Y como bien adivinarás PHP fue uno de ellos.

CakePHP nace como un clon de Ruby on Rails, según palabras del creador porque “aunque me gusta la limpieza de Ruby, necesito la estructura que brinda Rails“. Y es exactamente eso lo que Cake aporta a los desarrolaldores de PHP, un enlatado muy bien pensado dentro del cual construir tus aplicaciones, lo cual lo ha convertido en un framework, no solo diferente sino uno de los más populares para el desarrollo en este lenguaje.

Anatomía de un proyecto en CakePHP

Para los que ya han trabajado con RoR, encontran que CakePHP es muy similar en la estructura de archivos y de clases que propone. Ambos frameworks obligan al desarrollador a utilizar el patron MVC, el cual es uno de los patrones más utilizados y recomendados para la creación de aplicaciones Web. Las tres capas de este patron son estas:

Modelos: Son representaciones de las entidades que conforman la lógica del negocio. En esta capa se especifican las relaciones entre dichas entidades y también la forma en que han de persistir los estados de las mismas. En un lenguaje más plano, los modelos representan activamente las tablas de una base de datos, archivos XML, servidores LDAP, o cualquier otra fuente de datos, persistente o no.

Controladores: Las clases de esta capa están encargadas de definir las acciones que podrán ser usadas en el sistema, comunicarle a los Modelos que realicen las operaciones necesarias y seleccionar la vista que ha de ver el usuario finalmente junto con las variables que ha de usar la misma para construirse. Esta capa es la que separa los modelos de las vistas, de tal manera que no haya ninguna comunicación directa entre estos dos niveles.

Vistas: Son plantillas de presentación que se arman a partir de las variables que el controlador envía. Se pueden pensar como simples páginas web en el sentido tradicional de PHP, pero con un enfoque más limitado y ordenado. Las vistas no deberían conterner lógica alguna, son simplemente una capa de presentación.

CakePHP tiene además una estructura de archivos fija en la cual se deben colocar todos los archivos que vayan a generarse durante el desarrollo. Esta es una de las características más notorias del uso de “convención en vez de configuración”, si mantienes esta estructura de archivos, el framework sabrá exactamente donde ubicar lo que necesitas, sin necesidad de definir complicados archivos XML, o cualquier otra forma de configuración.

Tecnología ,