FRAMEWORK CAKE.docx

15
UNIVERSIDAD LAICA ELOY ALFARO DE MANABÍ FACULTAD DE CIENCIAS INFORMÁTICAS FRAMEWORK CAKE PROGRAMACIÓN AVANZADA ALUMNOS: BRAVO TOALA LUIS OMAR CEDEÑO BAZURTO JOSÉ JAVIER CEDEÑO SABANDO JENNIFER LEONOR CURSO: QUINTO “A” PROFESOR: ING. RUBÉN SOLÓRZANO 2015-2016

Transcript of FRAMEWORK CAKE.docx

Page 1: FRAMEWORK CAKE.docx

FACULTAD DE CIENCIAS INFORMÁTICAS

FrAMEWORK CAKE

PROGRAMACIÓN AVANZADA

ALUMNOS: BRAVO TOALA LUIS OMAR

CEDEÑO BAZURTO JOSÉ JAVIERCEDEÑO SABANDO JENNIFER LEONOR

CURSO:QUINTO “A”

PROFESOR:ING. RUBÉN SOLÓRZANO

2015-2016

Page 2: FRAMEWORK CAKE.docx

Contenido

INTRODUCCIÓN..................................................................................................................................2

OBJETIVOS..........................................................................................................................................3

OBJETIVO GENERAL........................................................................................................................3

OBJETIVOS ESPECÍFICOS.................................................................................................................3

ANTECEDENTES..................................................................................................................................4

VERSIONES.........................................................................................................................................7

VENTAJAS Y DESVENTAJAS.................................................................................................................8

VENTAJAS.......................................................................................................................................8

DESVENTAJAS.................................................................................................................................8

MANUAL DE INSTALACIÓN.................................................................................................................9

CONCLUSIÓN....................................................................................................................................11

BIBLIOGRAFÍA...................................................................................................................................11

Page 3: FRAMEWORK CAKE.docx

INTRODUCCIÓN

En la actualidad, el desarrollo de aplicaciones web, a más de ser una implementación muy popular a nivel empresarial, se ha convertido en una de los principales recursos de una empresa, cualquiera que esta sea, con la cual pueden brindar información sobre ella, como ofertas de productos y servicios. Cabe recalcar también que para el desarrollo de dichas aplicaciones, es necesario contar con buenas técnicas de ingeniería de desarrollo de software para un buen diseño, desarrollo y el posterior uso del software.

Es por ello que en el presente trabajo tiene como fin realizar el análisis con fines educativos sobre el framework Cake, considerando así varios aspectos relevantes sobre su funcionamiento, antecedentes, versiones que ha tenido, ventajas y desventajas de su uso para el desarrollo de aplicaciones web.

Page 4: FRAMEWORK CAKE.docx

OBJETIVOS

OBJETIVO GENERALAnalizar de manera general y con fines educativos, las características y funcionamiento del framework CakePhp

OBJETIVOS ESPECÍFICOS

Realizar la instalación del framework Cake. Conocer el funcionamiento del Framework. Determinar ventajas y desventajas del framework.

Page 5: FRAMEWORK CAKE.docx

ANTECEDENTES

En 2005, Michal Tatarynowicz escribió una mínima versión de un Framework Rápido para Aplicaciones en PHP. El encontró que ese fue el principio de un muy buen framework. Michal publicó el framework bajo la licencia MIT, mezclando Cake, y abriéndose a una comunidad de desarrolladores, quienes ahora mantienen Cake bajo el nombre CakePHP.

Cake 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 pérdida de flexibilidad.

Cake utiliza el esquema Modelo-Vista-Controlador para estructurar sus proyectos. Esto reforzado con el paradigma de orientación a objetos permite el desarrollo de aplicaciones modularizables.

Veamos algunas de las cosas más interesantes que nos ofrece:

ScafoldingAl inicio de un proyecto es muy común que se ajusten detalles en cuanto a la información que va a guardar cada tabla de la base de datos. Debido a esto, los desarrolladores tienen que utilizar más tiempo re-adecuando las secciones del sitio que salvan o eliminan datos.

El Scafolding crea una estructura CRUD temporal con cuatro simples pasos: Cree la base de datos inicial, cree el modelo, cree el controlador en blanco y agregue la variable $scaffold. Cake se encarga de toda lo lógica interna y del despliegue de las opciones requeridas.

Una vez que la base de datos ha sido definida, el desarrollador puede reemplazar el scafold por sus propias vistas y métodos.

BakeCake incluye un pequeño pero poderoso script llamado “Bake” que nos permite “hornear” nuestra

Page 6: FRAMEWORK CAKE.docx

aplicación apartir de una base de datos simple. Bake puede crear tanto modelos, como vistas o controladores completamente funcionales, e incluso con scaffolding, sin que el desarrollador deba escribir una sola línea de código.

Validaciones Integradas

Los modelos de Cake reflejan las entidades y relaciones de la base de datos. Ademas, para cada campo de las tablas se pueden definir reglas de validación propias o utilizar las reglas predefinidas de Cake. En cada modificación o inserción de un registro, Cake validará todos los campos automaticamente (a menos que se indique lo contrario desde el controlador).

Entre las reglas de validación integradas de Cake están:

Formato de fechas predefinidos y customizados Tarjetas de crédito Ips Valores monetarios Teléfonos y zip codes SSN’s Urls

Consultas Anidadas

Para hacer una consulta a la base de datos en Cake no es necesario escribir ni una sola instrucción de base de datos. Mediante el método find, heredado en los modelos, se parametrizan las búsquedas de modo que simplemente se necesita crear un array con el detalle de la búsqueda.

En los modelos de Cake se definen las relaciones entre las distintas entidades de la base de datos. Gracias a esto, al hacer una consulta, Cake retorna los campos del registro asociado directamente a la búsqueda, pero además puede incluir toda la información relacionada a dicho registro de la base de datos. Esta es una de las características que hacen más potente a Cake.

Por ejemplo, imaginemos que tenemos una galería web de imágenes. Además cada imagen tiene usuario que es su propietario y puede estar asociada a múltiples comentarios de otros usuarios. Tendríamos entonces una base de datos compuesta por la tabla imagenes, la tabla usuarios y la tabla comentarios. Al hacer una consulta de una imagen determinada en Cake, podríamos obtener un array con solamente los datos del registro de la imagen (utilizando el parámetro recursive en cero), o también los datos del registro junto con los datos del usuario propietario y los comentarios (recursive en 1), o inclusive toda esta información junto con la información de los usuarios que escribieron cada comentario y las imágenes que estos hayan también subido al sitio.

Otras cosas interesantes

Page 7: FRAMEWORK CAKE.docx

Como todo buen framework, Cake permite crear temas completamente independientes del resto del proyecto. Los temas están compuestos de archivos .ctp (Cakephp template), y todos los archivos javascript, css o imágenes que se requieran en los mismos. Su estructura es sencilla, lo cual permite que, por ejemplo, un diseñador pueda trabajar en ellos sin afectar el resto del proyecto ni requerir de conocimientos de programación.

Cake también ofrece la posibilidad de utilizar helpers en las vistas, ya sea que uno mismo los construya o que utlice los que Cake provee. Entre los más utilizados está el Html Helper y el Form Helper, que proveen funciones para generar cualquier etiqueta html o propiedades e inputs de un formulario con sus respectivas opciones.

Además Cake permite que el desarrollador escriba sus propios componentes. Es decir, una clase de Cake que puede ser utilizada en diferentes controladores y que puede aprovechar toda la maquinaria de Cakephp. Pero también, Cake acepta código de terceros que no esté en “formato Cake” y que igualmente puede ser usado en cualquier controlador o vista, conocidos como plugins (por ejemplo el TinyMCE puede ser usado como un plugin).

Page 8: FRAMEWORK CAKE.docx

VERSIONES

Cake php al momento cuenta con la versión más reciente la cual es la 3.1 a continuación en la siguiente imagen se podrá apreciar mejor y también algunas versiones anteriores que han sido mejoradas.

Page 9: FRAMEWORK CAKE.docx

VENTAJAS Y DESVENTAJAS

VENTAJAS

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.

Entre otras podemos mencionar las siguientes:

No necesita de mucha configuración, con tan solo indicarle la base de datos a trabajar ya está listo para comenzar a desarrollar aplicaciones web.

Posee CRUD de base de datos integrado, esto es muy útil ya que ayuda a verificar que la 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.

DESVENTAJAS

Una de las desventajas principales es que en sus últimas versiones cambia mucho el modo en que se instala, de esta manera ayuda a que los usuarios del Framework tengamos algunas complicaciones ya que con versiones anteriores era un poco más sencillo la instalación.

Entre otras desventajas se podría decir que:

Exceso de consultas: En proyectos en los que el número de tablas es muy elevado y hay muchas relaciones, el ORM integrado puede llegar a realizar excesivas consultas.

Tamaño de ficheros: Algunos de los ficheros del propio framework son demasiados pesados.

Page 10: FRAMEWORK CAKE.docx

MANUAL DE INSTALACIÓN

La instalación de CakePHP es bastante fácil y rápida, los requisitos mínimos son un servidor web, en este caso trabajaremos con Apache pero CakePHP tiene la libertad de poder trabajar con otros servidores como Lighty o Microsoft IIS. Esta instalación consta de tres sencillos pasos:

1. Descargar la copia de CakePHP

Puedes hacerlo desde su página oficial http://cakephp.org/ y descargar la última versión estable o bien puedes dirigirte a su repositorio en GitHub donde encontraras todas las versiones del framework e incluso varios plugins para el sistema.

2. Configuración

Disponemos de tres modos para configurar nuestro paquete una vez haya sido descargado o clonado en el caso de haberlo adquirido desde el repositorio de GitHub, estos métodos son de desarrollo, producción y avanzado, en este artículo y en el vídeo realizaremos la configuracion de desarrollo.

Como indiqué al inicio del artículo utilizaremos un servidor Apache y en este caso práctico lo realizaremos con un servidor local utilizando el paquete XAMPP, este método de desarrollo consiste en descomprimir el contenido del archivo que contiene CakePHP en el directorio C:\xampp\htdocs que es donde generalmente alojamos nuestros proyectos web, posteriormente re nombramos el directorio a un nombre mas fácil como por ejemplo “cakephp” y obtendrás una estructura de directorios similar a esta:

Si realizaste bien la configuración podrás acceder a la aplicación incluyendo la siguiente ruta en tu navegadorhttp://localhost/cakephp/

Page 11: FRAMEWORK CAKE.docx

3. Permisos

El Framework CakePHP utiliza el directorio /app/tmp para varias cosas entre ellas esta guardar descripciones de los modelos, el cache de las vistas y la información de sesiones de los usuarios, de tal forma tienes que verificar que este directorio tiene los debidos permisos de escritura para así no tener ningún problema al momento que estés desarrollando tu aplicación.

Page 12: FRAMEWORK CAKE.docx

CONCLUSIÓN

Finalmente como ya se ha dicho, el Framework tiene sus beneficios y algunas dificultades, pero más allá de aquello, hay que resaltar que el mismo nos ayuda muchísimo en lo que es el desarrollo de aplicaciones o sitios web, facilitándonos herramientas que hacen que el proceso de desarrollo sea más sencillo, utilizando patrones de diseño, tales como convenciones de nombres, el modelo conocido como MVC y otras herramientas que hacen posible una mejor integración del framework.

BIBLIOGRAFÍA

Gabriel Carpio. (02 de Julio del 2013). gabrielcarpio.wordpress.com. Obtenido de https://gabrielcarpio.wordpress.com/2012/07/02/introduccion-a-cakephp/

Edsom Mallericón , M. (10 de Septiembre del 2014). www.edsonmm.com. Obtenido de http://www.edsonmm.com/desarrolla-tus-aplicaciones-web-con-el-framework-cakephp/

Cake Software Foundation. cakephp.org. Obtenido de http://cakephp.org/pages/news

Comenzando con CakePHP. book.cakephp.org. Obtenido dehttp://book.cakephp.org/1.3/es/The-Manual/Beginning-With-CakePHP/What-is-CakePHP-Why-Use-it.html