64
UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE INGENIERÍA EN INFORMÁTICA Tesina Ventajas de Programar en Web utilizando CakePHPPara obtener la acreditación de las estadías profesionales y contar con los créditos para el grado de Ingeniero en Informática Autor: Leslie Citlaly Arámburo Lizárraga Asesor: M.C. Iliana Amabely Silva Hernández Asesor OR: ING. Ricardo Anguiano Guerrero Mazatlán, Sinaloa 28 de septiembre del 2018.

Tesina Ventajas de Programar en Web utilizando CakePHP

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tesina Ventajas de Programar en Web utilizando CakePHP

UNIVERSIDAD POLITÉCNICA DE SINALOA

PROGRAMA ACADÉMICO DE

INGENIERÍA EN INFORMÁTICA

Tesina

“Ventajas de Programar en Web

utilizando CakePHP”

Para obtener la acreditación de las estadías profesionales y

contar con los créditos para el grado de Ingeniero en Informática

Autor:

Leslie Citlaly Arámburo Lizárraga

Asesor:

M.C. Iliana Amabely Silva Hernández

Asesor OR:

ING. Ricardo Anguiano Guerrero

Mazatlán, Sinaloa 28 de septiembre del 2018.

Page 2: Tesina Ventajas de Programar en Web utilizando CakePHP

2

Page 3: Tesina Ventajas de Programar en Web utilizando CakePHP

3

Page 4: Tesina Ventajas de Programar en Web utilizando CakePHP

4

Page 5: Tesina Ventajas de Programar en Web utilizando CakePHP

5

Page 6: Tesina Ventajas de Programar en Web utilizando CakePHP

6

Agradecimientos

Agradezco a mis padres por siempre apoyarme, tanto moral como económico, por

siempre estar pendientes de mi para cumplir con mi etapa universitaria, haciendo

sacrificios en el camino.

A todos mis profesores que brindaron sus conocimientos, consejos, apoyo,

y que estuvieron involucrados en mi desarrollo, para lograr cumplir esta meta.

A mi asesora M.C. Iliana Amabely Silva Hernández por apoyarme en el

desarrollo de este trabajo de investigación para poder cerrar esta etapa en mi vida.

Page 7: Tesina Ventajas de Programar en Web utilizando CakePHP

7

Índice temático

Resumen....................................................................................................................... 12

Abstract ........................................................................................................................ 13

Introducción ................................................................................................................. 14

CAPÍTULO I .................................................................................................................. 15

1.1 Antecedentes ...................................................................................................... 16

1.1.1 Localización ..................................................................................................... 17

1.1.2 Objetivos de la Empresa ................................................................................. 17

1.1.3 Organigrama .................................................................................................... 17

1.1.4 Misión ........................................................................................................... 18

1.1.5 Visión ............................................................................................................... 18

1.2 Planteamiento del problema ............................................................................. 19

1.2.1 Propuesta de la investigación ........................................................................ 19

1.2.2 Objetivos de la investigación ......................................................................... 19

1.2.2.1 Objetivo general ........................................................................................... 19

1.2.2.2 Objetivos particulares .................................................................................. 20

1.2.3 Preguntas de la investigación ........................................................................ 20

1.2.4 Hipótesis .......................................................................................................... 20

1.2.5 Limitaciones y supuestos .............................................................................. 20

1.2.6 Relevancia ....................................................................................................... 20

CAPÍTULO II ................................................................................................................. 21

2.1 Framework .......................................................................................................... 22

2.1.1 Definición ......................................................................................................... 22

2.1.2 Surgimiento ..................................................................................................... 22

2.1.3 Arquitectura ..................................................................................................... 22

Page 8: Tesina Ventajas de Programar en Web utilizando CakePHP

8

2.1.3.1 Controlador ................................................................................................... 22

2.1.3.2 Modelo ........................................................................................................... 22

2.1.3.3 Vista ............................................................................................................... 23

2.2 Aplicación web ................................................................................................... 23

2.3 HTML ................................................................................................................... 25

2.4 CSS ...................................................................................................................... 26

2.5 PHP ...................................................................................................................... 27

2.6 CakePHP ............................................................................................................. 28

2.6.1 Características ................................................................................................ 29

2.7 I18n ...................................................................................................................... 30

2.8 ORM ..................................................................................................................... 30

2.9 Scaffolding .......................................................................................................... 30

2.10 Comparación entre frameworks...................................................................... 31

2.10.1 CakePHP ........................................................................................................ 31

2.10.1.2 Ventajas ...................................................................................................... 31

2.10.1.2 Desventajas ................................................................................................ 31

2.10.2 Laravel ............................................................................................................ 31

2.10.2.1 Ventajas ...................................................................................................... 31

2.10.2.2 Desventajas ................................................................................................ 32

2.10.3 CodeIgniter .................................................................................................... 32

2.10.3.1 Ventajas ...................................................................................................... 32

2.10.3.2 Desventajas ................................................................................................ 32

2.10.4 Symfony ......................................................................................................... 33

2.10.4.1 Ventajas ...................................................................................................... 33

2.10.4.2 Desventajas ................................................................................................ 33

Page 9: Tesina Ventajas de Programar en Web utilizando CakePHP

9

2.10.5 Yii .................................................................................................................... 33

2.10.5.1 Ventajas ...................................................................................................... 33

2.10.5.2 Desventajas ................................................................................................ 33

2.10.6 Tabla comparativa ......................................................................................... 34

CAPÍTULO III ................................................................................................................ 36

3.1 Diseño ................................................................................................................. 37

3.1.1 Metodología ..................................................................................................... 37

3.2 Desarrollo ........................................................................................................... 39

3.2.1 Implementación de una aplicación con Cake PHP ....................................... 39

3.2.2 Obtención de Cake PHP ................................................................................. 40

3.2.3 Configuración de la base de datos ................................................................ 40

3.2.4 Creando un modelo ......................................................................................... 40

3.2.5 Crear un controlador ....................................................................................... 41

3.2.6 Crear vistas ...................................................................................................... 42

3.2.7 Creando función view ..................................................................................... 44

3.2.8 Añadir registros............................................................................................... 45

3.2.9 Validando los datos ........................................................................................ 46

3.2.10 Editar registros .............................................................................................. 48

3.2.11 Borrar registros ............................................................................................. 50

Resultados y discusión ............................................................................................... 52

Conclusiones ............................................................................................................... 56

Bibliografía ................................................................................................................... 57

Glosario ........................................................................................................................ 59

Page 10: Tesina Ventajas de Programar en Web utilizando CakePHP

10

Índice de figuras

Figura 1. Logo empresa .............................................................................................. 16

Figura 2. Localización ................................................................................................. 17

Figura 3. Organigrama................................................................................................. 18

Figura 4. Modelo, Vista, Controlador ......................................................................... 23

Figura 5. Flujo aplicación web .................................................................................... 24

Figura 6. Logo html ..................................................................................................... 26

Figura 7. Logo css ....................................................................................................... 27

Figura 8. Logo php ...................................................................................................... 28

Figura 9. Logo cakephp............................................................................................... 29

Figura 10. Configurar base de datos .......................................................................... 40

Figura 11. Modelo ........................................................................................................ 41

Figura 12. Controlador ................................................................................................ 42

Figura 13. Vista ............................................................................................................ 43

Figura 14. Visualización .............................................................................................. 44

Figura 15. Función view .............................................................................................. 45

Figura 16. Vista view ................................................................................................... 45

Figura 17. Visualización view ..................................................................................... 45

Figura 18. Función add................................................................................................ 46

Figura 19. Formulario .................................................................................................. 46

Figura 20. Visualización función add ......................................................................... 47

Figura 21. Validación ................................................................................................... 48

Figura 22. Función edit................................................................................................ 48

Figura 23. Vista edit ..................................................................................................... 49

Figura 24. Visualización función edit ......................................................................... 49

Figura 25. Función delete............................................................................................ 50

Figura 26. Actualizar index ......................................................................................... 51

Page 11: Tesina Ventajas de Programar en Web utilizando CakePHP

11

Índice de tablas

Tabla 1. Comparación frameworks ............................................................................ 34

Tabla 2. Aplicando la metodología comparativa ....................................................... 38

Índice de graficas

Grafica 1. Frameworks más populares 2013 ............................................................. 52

Grafica 2. Frameworks más populares 2018 ............................................................. 53

Page 12: Tesina Ventajas de Programar en Web utilizando CakePHP

12

Resumen

Internet es un entorno tremendamente cambiante en el que las nuevas tecnologías

no adquieren importancia sólo por su faceta técnica, sino también por su

adecuación a la demanda.

La presente tesina describe la ventaja de utilizar Cake- framework para el

ya conocido lenguaje PHP. Es completamente Open Source, de modo que se

encuentra en constante avance y evolución gracias a la comunidad. Está basado

en una arquitectura Modelo Vista Controlador, lo que garantiza que la lógica en su

codificación está separada de los datos y las capas de presentación, lo que redunda

en mayor adaptabilidad ante cambios en las necesidades del cliente. Sigue una

serie de estándares que permiten la creación de sitios web más seguros y

reutilizables.

Palabras clave: framework, Cake PHP, PHP.

Page 13: Tesina Ventajas de Programar en Web utilizando CakePHP

13

Abstract

Internet is a tremendously changing environment in which new technologies do not

acquire importance only because of their technical aspect, but also because of their

adaptation to demand.

This thesis describes the advantage of using Cake framework for the well-

known PHP language. It is completely Open Source, so it is in constant progress

and evolution thanks to the community. It is based on a Model View Controller

architecture, which guarantees that the logic in its coding is separated from the data

and presentation layers, which results in greater adaptability to changes in the

needs of the client. Follow a series of standards that allow the creation of safer and

reusable websites.

Keywords: framework, Cake PHP, PHP.

Page 14: Tesina Ventajas de Programar en Web utilizando CakePHP

14

Introducción

Al igual que otros lenguajes populares para el desarrollo web, existen una gran

cantidad de frameworks desarrollados para PHP que permiten acelerar el tiempo

de desarrollo de las aplicaciones y evitar que se produzcan errores de

programación a nivel del servidor, al incluir capas de abstracción y usar patrones

de diseño.

Un framework automatiza muchas de las tareas más comunes de un

desarrollador, sin embargo, muchas veces la curva de aprendizaje que se requiere

para poderle sacar máximo provecho es una limitante. La idea principal de Cake es

acelerar el proceso de aprendizaje, a la vez que se reduzca el tiempo de desarrollo,

manteniendo la calidad del código.

Cake PHP 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.

En los siguientes capítulos se redacta los beneficios de utilizar un framework

de programación web, como lo es Cake-PHP, así como sus ventajas y desventajas

en comparación con otros frameworks.

El primer capítulo está enfocado en dar a conocer el lugar donde se realizó

la investigación a lo largo de 4 meses, así como dar a conocer la problemática dl

problema y sus objetivos en general.

En el segundo capítulo se fundamentan los conocimientos básicos y las

aplicaciones existentes sobre lo relacionado a Cake-PHP.

La metodología y el desarrollo se encuentran en el tercer capítulo, donde se

redacta la importancia de CakePHP en comparación con otros Frameworks que

operan bajo el paradigma WEB.

Page 15: Tesina Ventajas de Programar en Web utilizando CakePHP

15

CAPÍTULO I

ANTECEDENTES Y PLANTEAMIENTO DEL

PROBLEMA

Page 16: Tesina Ventajas de Programar en Web utilizando CakePHP

16

1.1 Antecedentes

SOLEMTI es una empresa de Soluciones Empresariales de Tecnología de

Información que nació en Mazatlán, creada por tres jóvenes entusiasmado por crear

un negocio e impulsar el talento local. Inició ofreciendo servicios de Desarrollo y

Diseño de Sitios Web y Sistemas Web, después se certifica ante IBM como una

empresa de Comercio Electrónico, Marketing Digital y, recientemente Desarrollo de

Aplicaciones Móviles.

SOLEMTI cuenta con un historial de antecedentes como una empresa de

soluciones empresariales de tecnología de información. Nacida en el año 2006, su

dedicación constante y eficaz a la resolución de problemas tecnológicos para sus

clientes, la ha catalogado como unas de las empresas con mayor dedicación,

versatilidad e impulsor de talento local.

SOLEMTI nació en Mazatlán, creada por tres jóvenes entusiasmado por crear

un negocio e impulsar el talento local. Inicio ofreciendo servicios de Desarrollo y

Diseño de Sitios Web y Sistemas Web, después se certifica ante IBM como una

empresa de Comercio Electrónico, Marketing Digital y recientemente Desarrollo de

Aplicaciones Móviles.

Figura 1. Logo empresa

Page 17: Tesina Ventajas de Programar en Web utilizando CakePHP

17

1.1.1 Localización

SOLEMTI se encuentra ubicado en Calzada Rafael Buelna Tenorio 202 Interior B-

3, Hacienda las Cruces, 82126 Mazatlán, Sin.

Figura 2. Localización

1.1.2 Objetivos de la Empresa

Ser reconocidos como una empresa mazatleca de Soluciones Empresariales de

Tecnologías de Información ofreciendo servicios de Desarrollo y Diseño de Sitios

Web, Desarrollo de Aplicaciones y Sistemas Web. Ofrecer soluciones innovadoras

con tecnologías de información que se adapten a las necesidades de nuestros

clientes, desarrollando y haciendo uso del talento de jóvenes Sinaloenses, siempre

enfocados en crear mejores sistemas de comercio electrónico, estrategias de

marketing digital, increíbles experiencias web y aplicaciones móviles útiles para la

vida diaria

1.1.3 Organigrama

A continuación se muestra el organigrama de la empresa, donde se especifica cada

área con que la empresa cuenta, así como las sub áreas.

SOLEMTI cuenta con el director general, que es la cabeza de la

organización, de ella se desglosan 4 áreas, de estas cada una tiene sus áreas

dependientes.

Page 18: Tesina Ventajas de Programar en Web utilizando CakePHP

18

Figura 3. Organigrama

1.1.4 Misión

Ser los mejores ofreciendo soluciones web innovadoras, superando las

expectativas de nuestros clientes nacionales e internacionales mediante un equipo

comprometido y capacitado en el uso adecuado de tecnologías de información,

siempre buscando crear una ventaja competitiva a nuestros clientes.

1.1.5 Visión

Ser preferidos y reconocidos a nivel nacional por el desarrollo de productos y

servicios Web innovadores, propios y de nuestros clientes, con una fuerte

Page 19: Tesina Ventajas de Programar en Web utilizando CakePHP

19

participación en el mercado internacional siempre ofreciendo un ambiente de

trabajo que motive el desarrollo humano y profesional.

1.2 Planteamiento del problema

Existe una gran desinformación sobre los beneficios de utilizar un framework de

desarrollo PHP a la hora de realizar un sitio web. El lenguaje de programación PHP

es un lenguaje orientado al servidor, por lo tanto una simple función puede llevar

bastantes líneas de código y tiempo realizar, pero si se utiliza un framework PHP,

como lo es Cake PHP, estas líneas de código se convierten en unas cuantas,

logrando un sitio más eficiente y productivo.

Un desarrollador web siempre busca la manera de eficientizar su trabajo y

poder producir más, gracias a esto los framework se han convertido en una

herramienta indispensable a la hora de desarrollar un sitio web, por otro lado, existe

la pregunta de cuál framework es mejor en respecto de varios aspectos.

Debido a esta desinformación sobre utilizar el framework de desarrollo

llamado Cake PHP, existe una problemática al esfuerzo invertido al utilizar otros

frameworks que no se adapten a las necesidades del proyecto, así como el tiempo

de desarrollo del mismo seria mayor, a esto también se le adjunta la falta de

información que existe sobre este framework.

1.2.1 Propuesta de la investigación

Con esta tesina se pretende dar a conocer los beneficios de un framework de

programación en PHP llamado Cake PHP, tomando en cuenta sus características,

cualidades, ventajas y desventajas sobre otros framework.

1.2.2 Objetivos de la investigación

A partir del planteamiento del problema y de la propuesta realizada, se han definido

los siguientes objetivos que guiarán el rumbo de la investigación.

1.2.2.1 Objetivo general

Demostrar las características, cualidades, ventajas y desventajas de un framework

de programación en PHP llamado Cake PHP.

Page 20: Tesina Ventajas de Programar en Web utilizando CakePHP

20

1.2.2.2 Objetivos particulares

Concientizar a los programadores de los beneficios y características de

utilizar el framework Cake PHP.

Recabar información sobre la programación web utilizando framework de

programación en PHP, principalmente Cake PHP.

Comparar Cake PHP con los diferentes framework que se utilizan hoy en

día.

1.2.3 Preguntas de la investigación

¿Qué es un framework de programación en PHP?

¿En que beneficia utilizar Cake PHP?

¿Qué diferencia a Cake PHP del resto de los framework?

1.2.4 Hipótesis

Los frameworks de programación en PHP hacen más fácil la vida de un

programador, reduciendo su esfuerzo y optimizando su tiempo.

Cake PHP les ofrece a los programadores escribir la lógica específica de su

aplicación, facilitando la elaboración de un sistema web a los programadores.

1.2.5 Limitaciones y supuestos

Se limitara al equipo de desarrollo web de SOLEMTI, agencia mazatleca de

desarrollo web, móvil y servicios tecnológicos de información.

1.2.6 Relevancia

Cake PHP es un framework creado para el desarrollo de aplicaciones web en PHP.

Cake PHP es un framework para PHP, libre, de código abierto. Se trata de

una estructura que sirve de base a los programadores para que éstos puedan crear

aplicaciones Web. Su principal objetivo es que puedas trabajar de forma

estructurada y rápida, sin pérdida de flexibilidad.

Page 21: Tesina Ventajas de Programar en Web utilizando CakePHP

21

CAPÍTULO II

ESTADO DEL ARTE

Page 22: Tesina Ventajas de Programar en Web utilizando CakePHP

22

2.1 Framework

2.1.1 Definición

En el desarrollo de Software, un framework es una estructura conceptual y

tecnológica de soporte definida, normalmente con artefactos o módulos de software

concretos, en base a la cual otro proyecto de software puede ser organizado y

desarrollado. Típicamente, puede incluir soporte de programas, librerías y un

lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los

diferentes componentes de un proyecto. [1]

Representa una arquitectura de software que modela las relaciones

generales de las entidades del dominio. Provee una estructura y una metodología

de trabajo la cual extiende o utiliza las aplicaciones del dominio.

2.1.2 Surgimiento

Son diseñados con la intención de facilitar el desarrollo de software, permitiendo a

los diseñadores y programadores pasar más tiempo identificando requerimientos

de software que tratando con los tediosos detalles de bajo nivel de proveer un

sistema funcional.[2]

2.1.3 Arquitectura

Dentro de este aspecto, podemos basarnos en el modelo-vista-controlador o MVC

(Controlador => Modelo => Vista), ya que debemos fragmentar nuestra

programación. Tenemos que contemplar estos aspectos básicos en cuanto a la

implementación de nuestro sistema. [3]

2.1.3.1 Controlador

Con este apartado se puede controlar el acceso (incluso todo) a nuestra aplicación,

esto pueden ser: archivos, scripts o programas; cualquier tipo de información que

permita la interfaz. Así, se puede diversificar el contenido de forma dinámica, y

estática (a la vez); pues, sólo se debe controlar ciertos aspectos. [3]

2.1.3.2 Modelo

Este miembro del controlador maneja las operaciones lógicas, y de manejo de

información (previamente enviada por su ancestro) para resultar de una forma

Page 23: Tesina Ventajas de Programar en Web utilizando CakePHP

23

explicable, y sin titubeos. Cada miembro debe ser meticulosamente llamado, en su

correcto nombre y en principio, con su verdadera naturaleza: el manejo de

información, su complementación directa. [3]

2.1.3.3 Vista

Al final, a este miembro de la familia le corresponde dibujar, o expresar la última

forma de los datos: la interfaz gráfica que interactúa con el usuario final del

programa (GUI). Después de todo, a este miembro le toca evidenciar la información

obtenida hasta hacerla llegar con el controlador. Solo (e inicialmente), nos espera

demostrar la información. [3]

Figura 4. Modelo, Vista, Controlador

2.2 Aplicación web

Una aplicación web es un programa de computadora que utiliza navegadores web

y tecnología web para realizar tareas a través de Internet.

Page 24: Tesina Ventajas de Programar en Web utilizando CakePHP

24

Las aplicaciones web generalmente están codificadas en un lenguaje

compatible con el navegador, como JavaScript y HTML, ya que estos idiomas se

basan en el navegador para hacer que el programa sea ejecutable. Algunas de las

aplicaciones son dinámicas y requieren procesamiento del lado del servidor. Otros

son completamente estáticos y no requieren procesamiento en el servidor. [4]

Así es como se ve un flujo de aplicaciones web típico:

Figura 5. Flujo aplicación web

Las aplicaciones web tienen diversos beneficios como los siguientes:

Las aplicaciones web se ejecutan en múltiples plataformas,

independientemente del sistema operativo o dispositivo, siempre que el

navegador sea compatible

Todos los usuarios acceden a la misma versión, eliminando cualquier

problema de compatibilidad.

Page 25: Tesina Ventajas de Programar en Web utilizando CakePHP

25

No están instalados en el disco duro, lo que elimina las limitaciones de

espacio.

Reducen los costos tanto para la empresa como para el usuario final, ya que

la empresa necesita menos soporte y mantenimiento y menos requisitos

para la computadora del usuario final.

2.3 HTML

HTML es un lenguaje de marcado que se utiliza para el desarrollo de páginas de

Internet. Se trata de la sigla que corresponde a HyperText Markup Language, es

decir, Lenguaje de Marcas de Hipertexto, que podría ser traducido como Lenguaje

de Formato de Documentos para Hipertexto. [5]

EL HTML se encarga de desarrollar una descripción sobre los contenidos

que aparecen como textos y sobre su estructura, complementando dicho texto con

diversos objetos (como fotografías, animaciones, etc.)

Es un lenguaje muy simple y general que sirve para definir otros lenguajes

que tienen que ver con el formato de los documentos. El texto en él se crea a partir

de etiquetas, también llamadas tags, que permiten interconectar diversos

conceptos y formatos.

Para la escritura de este lenguaje, se crean etiquetas que aparecen

especificadas a través de corchetes o paréntesis angulares: < y >. Entre sus

componentes, los elementos dan forma a la estructura esencial del lenguaje, ya que

tienen dos propiedades (el contenido en sí mismo y sus atributos).

Page 26: Tesina Ventajas de Programar en Web utilizando CakePHP

26

Figura 6. Logo html

2.4 CSS

CSS es un lenguaje de hojas de estilos creado para controlar el aspecto o

presentación de los documentos electrónicos definidos con HTML y XHTML. CSS

es la mejor forma de separar los contenidos y su presentación y es imprescindible

para crear páginas web complejas. [6]

Separar la definición de los contenidos y la definición de su aspecto presenta

numerosas ventajas, ya que obliga a crear documentos HTML/XHTML bien

definidos y con significado completo (también llamados "documentos semánticos").

Además, mejora la accesibilidad del documento, reduce la complejidad de su

mantenimiento y permite visualizar el mismo documento en infinidad de dispositivos

diferentes.

Al crear una página web, se utiliza en primer lugar el lenguaje HTML/XHTML

para marcar los contenidos, es decir, para designar la función de cada elemento

dentro de la página: párrafo, titular, texto destacado, tabla, lista de elementos, etc.

Una vez creados los contenidos, se utiliza el lenguaje CSS para definir el

aspecto de cada elemento: color, tamaño y tipo de letra del texto, separación

Page 27: Tesina Ventajas de Programar en Web utilizando CakePHP

27

horizontal y vertical entre elementos, posición de cada elemento dentro de la

página, etc.

Figura 7. Logo css

2.5 PHP

PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de

código abierto muy popular especialmente adecuado para el desarrollo web y que

puede ser incrustado en HTML. [7]

Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está

desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas

contribuciones de otros desarrolladores. Actualmente PHP se encuentra en su

versión 4, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir

las necesidades de las aplicaciones web actuales.

Este lenguaje de programación está preparado para realizar muchos tipos de

aplicaciones web gracias a la extensa librería de funciones con la que está dotado.

La librería de funciones cubre desde cálculos matemáticos complejos hasta

tratamiento de conexiones de red, por poner dos ejemplos.

Page 28: Tesina Ventajas de Programar en Web utilizando CakePHP

28

Figura 8. Logo php

2.6 CakePHP

CakePHP es un framework para el desarrollo aplicaciones web escrito en PHP,

creado sobre los conceptos de Ruby on Rails. [8]

CakePHP empezó en 2005, cuando Ruby On Rails estaba ganando

popularidad y utiliza muchos de sus conceptos. Desde entonces la comunidad

creció y generó muchos subproyectos.

CakePHP está diseñado para hacer tareas habituales de desarrollo web

simple y fácil. Proporciona una caja de herramientas todo-en-uno y para que

puedas empezar rápidamente, las diferentes partes de CakePHP trabajan

correctamente de manera conjunta o separada.

Page 29: Tesina Ventajas de Programar en Web utilizando CakePHP

29

Figura 9. Logo cakephp

2.6.1 Características

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 distribuye bajo licencia MIT. [8]

Al igual que Ruby On Rails, CakePHP facilita al usuario la interacción con la

base de datos mediante el uso de Active record. Además hace uso del patrón

Modelo Vista Controlador.

Compatible con PHP4 y PHP5

CRUD de la base de datos integrado

URLs amigables

Sistema de plantillas rápido y flexible

Ayudas para AJAX, Javascript, HTML, forms y más

Trabaja en cualquier subdirectorio del sitio

Validación integrada

Scaffolding de las aplicaciones

Lista de control de acceso

Sintetización de datos

Componentes de seguridad y sesión

Page 30: Tesina Ventajas de Programar en Web utilizando CakePHP

30

2.7 I18n

Internacionalización (I18N) es el diseño y la preparación de software, sitios web y

otras aplicaciones a fin de que el código de origen sea válido para la cultura local y

pueda soportar varios idiomas y escrituras. [9]

La internacionalización se encarga del desarrollo y las pruebas afines al

tratamiento de datos y textos extranjeros en un programa. Esto incluiría la

ordenación, importación y exportación de datos y de texto, el tratamiento correcto

de la divisa y de los formatos de fecha y hora, el análisis sintáctico de las cadenas

y el tratamiento de las mayúsculas y minúsculas. También incluye las tareas de

separar las cadenas (o textos de la interfaz de usuario) del código de origen y

asegurarse que las cadenas en el idioma extranjero tienen suficiente espacio para

ajustarse a la interfaz de usuario (UI) correctamente. Debería pensar en la

internacionalización como en el aseguramiento de la funcionalidad subyacente y

del funcionamiento de su programa.

2.8 ORM

El mapeo objeto-relacional, ORM por sus siglas en inglés, es una técnica de

programación para convertir datos entre el sistema de tipos utilizado en un lenguaje

de programación orientado a objetos y la utilización de una base de datos relacional

como motor de persistencia. En la práctica esto crea una base de datos orientada

a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las

características propias de la orientación a objetos (básicamente herencia y

polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan

el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus

propias herramientas ORM. [10]

2.9 Scaffolding

Scaffolding es un método de programación para construir aplicaciones de software

de base de datos. Es una técnica soportada por algunos marcos de modelo-vista-

controlador, en los que el programador puede escribir una especificación que

describe cómo se puede usar la base de datos de la aplicación. El compilador utiliza

esta especificación para generar el código que la aplicación puede usar para crear,

Page 31: Tesina Ventajas de Programar en Web utilizando CakePHP

31

leer, actualizar y eliminar las entradas de la base de datos, y trata la plantilla como

un andamio sobre el cual construir una aplicación más poderosa. [11]

El scaffolding es una evolución de los generadores de código de base de datos

de entornos de desarrollo anteriores. ASP.NET MVC y Ruby on Rails utilizan esta

técnica.

2.10 Comparación entre frameworks

2.10.1 CakePHP

Cuando se lanzó allá por el 2005, CakePHP era sólo un proyecto modificado en

Ruby on Rails. Ahora se ha convertido en un gran framework para PHP con

características espléndidas. [12]

2.10.1.2 Ventajas

Gran apoyo de la comunidad, que puede despejar cualquier duda sobre el

desarrollo de cualquier web de una manera eficaz.

ORM muy útil que ayuda a los desarrolladores a crear excelentes consultas

así como códigos.

Disponibilidad de fantásticos plugins para mantener los códigos limpios, así

como elegantes.

2.10.1.2 Desventajas

Códigos extensos. Cuando comparamos CakePHP con otros frameworks,

los códigos para hacer una tarea en particular se ven enormes.

Es una de las plataformas más lentas en cuanto a rendimiento.

2.10.2 Laravel

Laravel fue introducido en el mundo del desarrollo en 2011, y solo en un lapso corto

de tiempo capturó la atención de los programadores de todo el mundo debido a su

extrema elegancia. [12]

2.10.2.1 Ventajas

Utiliza el motor de plantillas Blade para acelerar las tareas de compilación, y

los usuarios pueden incluir nuevas características de una manera sencilla.

Page 32: Tesina Ventajas de Programar en Web utilizando CakePHP

32

El "Bundled modularity" permite que el código sea reutilizado sin muchas

molestias.

ORM que es fácil de entender. Es por eso que, la creación de relaciones de

la bases de datos es tan simple.

Un CLI Artisan que comprende herramientas avanzadas para hacer tareas y

migraciones.

Documentación espléndida

Característica adicional para el enrutamiento inverso.

2.10.2.2 Desventajas

Es muy lento y una nueva plataforma con la que los desarrolladores deben

tratar de nuevas.

Los desarrolladores amateurs suelen complicarse extendiendo códigos y

clases.

No cuenta con una gran comunidad detrás, en comparación con otras

plataformas.

Muchos métodos incluidos en el enrutamiento inverso son complejos.

2.10.3 CodeIgniter

CodeIgniter se lanzó sólo un año después del lanzamiento de CakePHP. Al igual

que Cake, se ha ganado muchos seguidores en un corto periodo de tiempo. [12]

2.10.3.1 Ventajas

Es un framework que es simple de entender. Incluso un principiante

encuentra esta plataforma ideal para el desarrollo de una tarea.

Muy buena documentación

Alta velocidad, no hay retrasos.

Como CakePHP, CodeIgniter cuenta con un gran apoyo de la comunidad.

2.10.3.2 Desventajas

La librería no es tan exhaustiva o refinada como en otras plataformas.

La falta de separación modular de códigos.

Es difícil mantener o modificar códigos.

Page 33: Tesina Ventajas de Programar en Web utilizando CakePHP

33

2.10.4 Symfony

Aunque fue lanzado a finales de 2005, Symfony como plataforma llegó a tener

protagonismo después de 2007. Se convirtió lentamente en un amplio framework

MVC para construir aplicaciones web. [12]

2.10.4.1 Ventajas

Flexibilidad en la creación de proyectos.

Los desarrolladores cuentan con la opción de elegir su propio ORM

Los componentes Symphony se pueden incorporar a proyectos mucho más

grandes como Drupal.

2.10.4.2 Desventajas

La documentación carece de amplias referencias.

El mecanismo de seguridad de Symfony es difícil de utilizar.

Parsear archivos en Symfony es un pelín complicado.

2.10.5 Yii

Similar a Laravel, Yii tardó mucho tiempo en convertirse en todo un referente dentro

del mercado de frameworks para PHP. Ahora se presenta como una plataforma

perfecta para muchos desarrolladores con la que crear aplicaciones web. [12]

2.10.5.1 Ventajas

Para hacer tareas como un buscador, una paginación o grids, los

desarrolladores pueden recurrir a las funciones Ajax incorporadas.

Códigos poco pesados.

Seguridad excelente, y grandes extensiones.

Framework muy fácil de aprender.

2.10.5.2 Desventajas

Le falta el apoyo de extensiones muy necesarias para crear aplicaciones

complejas.

La disponibilidad de expertos en este framework no es tan alta si la

comparamos con otras plataformas.

Page 34: Tesina Ventajas de Programar en Web utilizando CakePHP

34

El apoyo de la comunidad no es tan masivo como el que los desarrolladores

obtienen con CakePHP.

2.10.6 Tabla comparativa

A continuación se muestra de manera más explícita las diferencias de cada

framework. [13]

Tabla 1. Comparación frameworks

Cak

e

PHP

CodeIgn

iter

Symf

ony

Yii Larav

el

Licencia MIT OSL MIT New

BSD

MIT

Inicio 200

5

2006 2005 200

8

2011

PHP 5.2+ 5.1+ 5 5.1+ 5.5.9

MVC Si Si Si Si Si

i18n Si Incomple

to

Si Si Si

ORM Activ

e

Rec

ord

Data

Map

er

Third

Party

Only

Doctri

ne,

Propel

DAO

,

Activ

e

Rec

ord

Si

Testing Si Next

Release

Si Si PHP

Unit

Page 35: Tesina Ventajas de Programar en Web utilizando CakePHP

35

Segurid

ad

ACL Si Si Si Si

Templat

es

Si Si Si Si Si

Caché Si Si Si Si Si

Scaffold

ing

Si No Si Si Si

Page 36: Tesina Ventajas de Programar en Web utilizando CakePHP

36

CAPÍTULO III

DISEÑO Y DESARROLLO

Page 37: Tesina Ventajas de Programar en Web utilizando CakePHP

37

3.1 Diseño

Como metodología de la investigación se denomina el conjunto de procedimientos

y técnicas que se aplican de manera ordenada y sistemática en la realización de

un estudio. [14]

En un proceso de investigación, la metodología es una de las etapas en que

se divide la realización de un trabajo. En ella, el investigador o los investigadores

deciden el conjunto de técnicas y métodos que emplearán para llevar a cabo las

tareas vinculadas a la investigación.

De esta manera, la metodología de investigación elegida es la que va a

determinar la manera en que el investigador recaba, ordena y analiza los datos

obtenidos.

3.1.1 Metodología

La metodología elegida para realizar esta investigación es la comparativa, ya que

en este documento se busca dar a conocer las ventajas de utilizar CakePHP

respecto a los demás frameworks. [15]

El método comparativo de investigación es un procedimiento sistemático de

contrastación de uno o más fenómenos, a través del cual se buscan establecer

similitudes y diferencias entre ellos.

La comparación es una herramienta fundamental del análisis, se utiliza de

manera rutinaria en la comparación de hipótesis y puede contribuir al

descubrimiento de nuevas hipótesis y formación de teorías.

Este método se fundamenta en ser un proceso de búsqueda sistemática de

semejanzas y diferencias que implican la comparación de los distintos tipos de

realidad social presente.

Si deseamos obtener resultados que sean válidos en un cierto grupo,

debemos definir éste como una población de objetos, de casos, y a partir de ese

momento debemos considerar qué tamaño ha de tener la muestra de esta

población que tenemos que estudiar.

Page 38: Tesina Ventajas de Programar en Web utilizando CakePHP

38

Se ha elegido esta metodología debido a que la finalidad de esta

investigación es dar a conocer más acerca del framework CakePHP con respecto

a los demás frameworks de desarrollo en PHP.

Tabla 2. Aplicando la metodología comparativa

Framework Ventajas Desventajas

CakePHP -Apoyo de la

comunidad.

-Cuenta con ORM.

-Gran disponibilidad

de plugins

-Códigos extensos.

-Lento en cuanto

rendimiento.

Laravel -Utiliza motor de

plantillas Blade.

-Cuenta con ORM.

-Cuenta con CLI

Artisan.

-Es muy lento.

-No cuenta con una

gran comunidad.

-Métodos complejos.

CodeIgniter -Simple de entender.

-Buena

documentación.

-Alta velocidad.

-La librería no es tan

exhaustiva.

-Falta de separación

modular de códigos.

Symfony -Flexibilidad en

creación de

proyectos.

-Cuenta con la opción

de elegir su propio

ORM.

-La documentación

carece de

referencias.

-Mecanismo de

seguridad difícil de

utilizar.

Page 39: Tesina Ventajas de Programar en Web utilizando CakePHP

39

-Dificultad de parsear

archivos.

Yii -Funcionalidades

Ajax.

-Códigos pocos

pesados.

-Buena seguridad.

-Falta de extensiones

en aplicaciones

complejas.

-Falta de

disponibilidad de

expertos.

-Poco apoyo de la

comunidad.

3.2 Desarrollo

Como se menciona anteriormente, para esta investigación se utiliza la metodología

de la observación.

Se estuvo observando el funcionamiento de algunos sitios web desarrollados

con CakePHP, para así poder formular una hipótesis y conocer el framework.

Para comprobar esta hipótesis se realizó una investigación en diversas

fuentes acerca del framework CakePHP.

3.2.1 Implementación de una aplicación con Cake PHP

Se explicara la obtención e instalación del framework Cake PHP, se creó y configuro

la base de datos, así como se añadió la lógica para listar, añadir, editar y eliminar

artículos de un blog. [16]

Lo que se necesita para empezar a programar en Cake PHP es lo siguiente:

Servidor web funcionando. En esta ocasión se utilizó Apache, aunque las

instrucciones para otros servidores son similares.

Servidor de base de datos. Se utilizó MySQL

Conocimientos básicos de PHP.

Page 40: Tesina Ventajas de Programar en Web utilizando CakePHP

40

3.2.2 Obtención de Cake PHP

Para obtener Cake PHP se necesita entrar al repositorio de GitHub y simplemente

descargarlo en la carpeta del servidor web, Apache y empezar a configurarlo. [16]

3.2.3 Configuración de la base de datos

Se necesita configurar el fichero de Cake PHP este se encuentra en

config/app.default.php. Se copia y renombra el fichero a app.php. [16]

Simplemente se tiene que reemplazar los valores default del fichero de

configuración por los valores de la base de datos, como se muestra en la siguiente

imagen:

Figura 10. Configurar base de datos

3.2.4 Creando un modelo

Al crear un modelo en Cake PHP se puede interactuar con la base de datos para

así poder crear, editar, ver y borrar registros de las tablas de la base de datos. [16]

Los modelos se guardan en src/Model/table. Los convenios usados para los

nombres son importantes. Llamando al modelo ArticlesTable, CakePHP deducirá

automáticamente que esa tabla será utilizada en el controlador ArticlesController, y

que se vinculara a una tabla en la base de datos llamada articles.

Page 41: Tesina Ventajas de Programar en Web utilizando CakePHP

41

Lo anterior indica que como regla los modelos y controladores deberán de

iniciar con mayúscula y en plural con el nombre de la tabla a la que hace referencia

y con el término Table o Controller respectivamente, así como las tablas en la base

de datos deberá de guardarse con el nombre en plural y en minúsculas.

A continuación se muestra un ejemplo de un modelo en CakePHP:

Figura 11. Modelo

3.2.5 Crear un controlador

En el controlador es donde se escribe el código para interactuar con la tabla en la

base de datos a la que esté relacionada. Es donde se utilizan los modelos para

llevar a cabo el trabajo que queremos hacer en dicha tabla. [16]

El controlador se crea en src/Controller. Después de crearlo se le añaden las

acciones, estas representan la función concreta o interfaz en la aplicación. Por

ejemplo, cuando los usuarios recuperan la url www.example.com/articles/index,

CakePHP busca en el controlador articles la función index. El código de un

controlador se muestra a continuación:

Page 42: Tesina Ventajas de Programar en Web utilizando CakePHP

42

Figura 12. Controlador

En la imagen anterior se muestra la forma de listar los registros de una tabla

con CakePHP. El método set() se utiliza para pasar datos desde el controlador

hacia la vista. La línea en cuestión se asigna a una variable en la vista llamada

articles igual al valor retornado con el método find(‘all’), dicho método ejecuta un

SELECT * FROM articles.

3.2.6 Crear vistas

Las vistas en CakePHP únicamente son fragmentos de presentación que encajan

dentro de la platilla (layout) de la aplicación. Para la mayoría de aplicaciones son

HTML mezclado con PHP, aunque también se puede utilizar XML, CSV o incluso

datos binarios. [16]

Una plantilla es una presentación de código que envuelve una vista. Se

pueden definir múltiples plantillas y puedes cambiar entre ellas.

Las vistas en CakePHP se almacenan en la ruta /src/Template y en un

directorio con el mismo nombre que el que el controlado al que pertenecen. A

continuación se ejemplifica una vista en CakePHP:

Page 43: Tesina Ventajas de Programar en Web utilizando CakePHP

43

Figura 13. Vista

Explicando brevemente la anterior imagen, hay un llamado a un objeto $this-

>Html. Este objeto es una instancia de la clase Cake/View/Helper/HtmlHelper de

CakePHP. Este framework proporciona un conjunto de ayudantes de vistas

(helpers) para ayudar a completar acciones habituales, como por ejemplo crear un

enlace o un formulario. El método link() genera un enlace HTML con el título como

primer parámetro y la url como el segundo parámetro.

Cuando se crean urls en CakePHP se recomienda utilizar un formato array.

Si se utilizan las rutas en formato array se podrá aprovechas de las potentes

funcionalidades de generación de rutas inversas de CakePHP.

A continuación se muestra la vista a través del navegador.

Page 44: Tesina Ventajas de Programar en Web utilizando CakePHP

44

Figura 14. Visualización

3.2.7 Creando función view

Se crea una función en el controlador, la cual servirá para ver los detalles de cada

elemento insertado en la tabla. [16]

En vez de utilizar find(‘all’), se utiliza el método get() ya que solo se quiere

traer la información de un solo registro de la tabla utilizada.

A esta función se necesita mandar un parámetro, este debe ser el ID del

registro que se quiera ver. Este parámetro se gestiona automáticamente al llamar

a la url /articles/view/1, el valor “1” se pasa a la función view como primer parámetro

$id.

También se hace una verificación de errores para asegurarse de que el

usuario realmente accede a dicho registro. Si en la url ingresada no se encuentra

el id del registro, se lanza una excepción NotFoundException y se deja al

ErrorHandler tomar el control. En caso de que el registro solicitado no exista en la

tabla, el método get() lanzara una excepción NotFoundException.

A continuación se muestra el fragmento de código correspondiente a dicha

función.

Page 45: Tesina Ventajas de Programar en Web utilizando CakePHP

45

Figura 15. Función view

Después de lo anterior se crea la vista para esta función, ubicándola en

src/Template/Articles/view.ctp.

Figura 16. Vista view

Figura 17. Visualización view

3.2.8 Añadir registros

Para añadir registros a una tabla de la base de datos se necesita crear en el

controlador utilizado la función add(). [16]

Page 46: Tesina Ventajas de Programar en Web utilizando CakePHP

46

Figura 18. Función add

Lo que la función add() hace es: si el formulario enviado no está vacío, intenta

salvar un nuevo registro utilizando el modelo. Si no se guarda bien, muestra la vista

correspondiente, así podremos mostrar los errores de validación u otras alertas.

Se utiliza el método _ _call del FlashComponent para guardar un mensaje

en una variable de sesión que será mostrada en la página después de la

redirección.

Al llamar al método save(),se comprueba si hay errores de validación primero

y si encuentra alguno, no continuara con el proceso de guardado.

3.2.9 Validando los datos

CakePHP ayuda a evitar la monotonía al construir los formularios y su validación.

Para aprovechar estas funciones es conveniente que se utilice FormHelper en las

vista. [16]

Figura 19. Formulario

Page 47: Tesina Ventajas de Programar en Web utilizando CakePHP

47

En la imagen anterior se muestra la implementación de FormHelper para

generar la etiqueta “form”.

Si créate() no tiene parámetros al ser llamado, asume que se está creando

un formulario que envía vía POST a la acción add().

El método $this->Form->input() se utiliza para crear elementos de

formularios del mismo nombre. El primer parámetro le indica a CakePHP a que

campo corresponde y el segundo parámetro permite especificar un abanico muy

amplio de opciones.

La llamada a $this->Form->end() cierra el formulario.

Figura 20. Visualización función add

Para validar los datos se utiliza el modelo.

Page 48: Tesina Ventajas de Programar en Web utilizando CakePHP

48

Figura 21. Validación

El método validateDefault() le dice a CakePHP como validar los datos

cuando se invoca el método save(). Se debe de especificar que campos son los

que se desean validar. El motor de validaciones de CakePHP es potente y con

numerosas reglas ya predefinidas (tarjetas de crédito, direcciones de e-mail, etc.)

así como flexibilidad para añadir tus propias reglas de validación.

3.2.10 Editar registros

Para editar un registro de una tabla se debe de crear la función en su controlador,

la cual recibe el ID del registro que se desea editar. [16]

Figura 22. Función edit

Lo primero que hace este método es asegurarse de que el usuario ha

intentado acceder a un registro existente. Si no han pasado el parámetro $id o el

artículo no existe se lanza una excepción NotFoundException para que el

ErrorHandler se ocupe de ello.

Page 49: Tesina Ventajas de Programar en Web utilizando CakePHP

49

Luego verifica si la petición es POST o PUT. Si lo es, entonces se utilizan los

datos recibidos para actualizar dicho registro utilizando el método patchEntity.

Finalmente se utiliza el objeto tabla para guardar la entidad de nuevo o mostrar

errores de validación en caso de haberlos.

La vista seria la siguiente:

Figura 23. Vista edit

Se muestra el formulario de edición, con los valores actuales de ese registro,

junto a los errores de validación que hubiese.

Figura 24. Visualización función edit

Page 50: Tesina Ventajas de Programar en Web utilizando CakePHP

50

3.2.11 Borrar registros

Para permitir que los usuarios borren registros, se implementa una acción delete()

en el controlador. [16]

Figura 25. Función delete

La lógica elimina el artículo especificado por $id y utiliza $this->Flash-

>success() para mostrar al usuario un mensaje de confirmación tras haber sido

redirigidos. Si el usuario intenta eliminar utilizando una petición GET, el

“allowMethod” devolvería una Excepción. Las excepciones que no se traten serán

capturadas por el manejador de excepciones de CakePHP (exception handler) y

una bonita página de error es mostrada.

Como se están ejecutando algunos métodos y luego redirigiendo a otra

acción del controlador, no es necesaria ninguna vista (nunca se usa). Lo que si se

debe actualizar la vista index.ctp para incluir el enlace:

Page 51: Tesina Ventajas de Programar en Web utilizando CakePHP

51

Figura 26. Actualizar index

Page 52: Tesina Ventajas de Programar en Web utilizando CakePHP

52

Resultados y discusión

Los resultados obtenidos de esta investigación demuestra que a pesar de que

CakePHP no es el framework más utilizado hoy en día, este ha logrado ser parte

de los frameworks más utilizados, así como, ha conseguido que muchos

desarrolladores se decidan por el a la hora de desarrollar aplicaciones web.

A continuación se muestran dos graficas que verifican la popularidad que ha

ganado CakePHP en los últimos años. [17]

Grafica 1. Frameworks más populares 2013

Page 53: Tesina Ventajas de Programar en Web utilizando CakePHP

53

Grafica 2. Frameworks más populares 2018

Con CakePHP el desarrollo web ya no es monótono porque ofrece las

herramientas para que se empiece a escribir el código que realmente se necesita:

la lógica específica de la aplicación que se desea.

CakePHP tiene un equipo de desarrolladores y una comunidad activos, lo

que añade valor al proyecto. Con CakePHP, además de no tener que reinventar la

rueda, el núcleo de la aplicación se mejora constantemente y está bien probado.

[18]

Esta es una lista breve con las características de las que la comunidad

disfruta al utilizar CakePHP:

Comunidad activa y amistosa

Licencia flexible

Compatible con PHP4 y PHP5

CRUD integrado para la interacción con la base de datos

Soporte de aplicación [scaffolding]

Page 54: Tesina Ventajas de Programar en Web utilizando CakePHP

54

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

Listas de control de acceso flexibles

Limpieza de datos

Caché flexible

Localización

Funciona en cualquier subdirectorio del sitio web, con poca o ninguna

configuración de Apache

Además CakePHP cuenta con diversas maneras de obtener la ayuda para

empezar a utilizarlo, entre ellas están:

El sitio oficial CakePHP: Cuenta con enlaces a herramientas de

desarrollo frecuentemente utilizados, videos, oportunidad de donar, y

descargas.

El Cookbook: El manual de CakePHP es probablemente el primer lugar

al que dirigirse para obtener ayuda.

El Bakery: La panadería de CakePHP es un almacén de cosas

relacionadas con CakePHP. En el acceden tanto los primerizos como los

expertos, los primeros para obtener tutoriales, casos de uso o ejemplos

de código, los expertos para compartir sus conocimientos con la

comunidad.

El API: Es la documentación más directa que explica los detalles internos

del funcionamiento del framework. Se trata de una guía de referencia de

código concisa.

Page 55: Tesina Ventajas de Programar en Web utilizando CakePHP

55

CakeForge: Es utilizado por los desarrolladores para hospedar sus

proyectos, para así poder compartir sus conocimientos con los demás.

El canal IRC: Sirve para las personas puedan compartir sus dudas con

la comunidad, y así encontrar a alguien que pueda ayudar.

El google group: CakePHP tiene un grupo de Google muy activo; un

recurso excelente en que se encuentran respuestas archivadas,

preguntas frecuentes, y donde también se puede obtener respuestas

inmediatas a problemas presentados a la hora de utilizar el framework.

Page 56: Tesina Ventajas de Programar en Web utilizando CakePHP

56

Conclusiones

Un framework de desarrollo web en PHP no es más que una librería de directorios

los cuales ayudan a los desarrolladores brindando soluciones estandarizadas a

problemas típicos que aplican dentro de la etapa de desarrollo de un sistema o

aplicación web. Sus principales características son la escalabilidad y adaptabilidad

a cualquier proyecto a desarrollo web.

El aumento del uso de Internet entre empresas e individuos ha influido en la

forma en cómo se ejecutan las empresas. Esto las ha llevado a la adopción de

aplicaciones web, con herramientas de desarrollo en PHP, a medida que las

empresas cambian de modelos tradicionales a modelos basados en la nube y en

las redes.

El framework de desarrollo CakePHP brinda funcionalidades las cuales,

tomando en cuenta la seguridad de la aplicación, adaptabilidad y escalabilidad,

brindan una herramienta para ayudar a los desarrolladores a la hora de empezar a

diseñar un sitio web.

De esta manera se puede concluir con un resultado de hipótesis correcto, en

vista del análisis realizado, que CakePHP optimiza las horas de desarrollo, reduce

el esfuerzo de los programadores, ya que este framework es adaptable y, debido a

la manera organizada del framework, les ofrece a los programadores escribir la

lógica especifica de su sistema o aplicación.

Sin embargo, existen una gran variedad de herramientas similares, las

cuales se enfocan en otras características al momento de desarrollar una aplicación

web. Por lo tanto, existe un alcance más amplio y fácilmente accesible al uso de

estas herramientas debido a la cantidad de ellas existentes en el mercado,

asimismo como la relevancia que tienen hoy en día en el campo de la programación

Web.

Page 57: Tesina Ventajas de Programar en Web utilizando CakePHP

57

Bibliografía

[1]"Framework", Es.wikipedia.org, 2018. [Online]. Available:

https://es.wikipedia.org/wiki/Framework. [Accessed: 03- Dec- 2018].

[2]"Framework - EcuRed", Ecured.cu, 2018. [Online]. Available:

https://www.ecured.cu/Framework. [Accessed: 03- Dec- 2018].

[3]"Modelo Vista - Controlador - Tecnología De Calidad", Sites.google.com, 2018.

[Online]. Available: https://sites.google.com/site/aunaris2/programacion/modelo-

vista---controlador. [Accessed: 03- Dec- 2018].

[4]"Informática Básica: ¿Qué es una aplicación web?", GCFGlobal.org, 2018.

[Online]. Available: https://edu.gcfglobal.org/es/informatica-basica/que-es-una-

aplicacion-web/1/. [Accessed: 03- Dec- 2018].

[5]"Definición de html — Definicion.de", Definición.de, 2018. [Online]. Available:

https://definicion.de/html/. [Accessed: 03- Dec- 2018].nvestigacion/. [Accessed: 03-

Dec- 2018].

[6]"Capítulo 1. Introducción (Introducción a CSS)", Librosweb.es, 2018. [Online].

Available: https://librosweb.es/libro/css/capitulo-1.html. [Accessed: 03- Dec- 2018].

[7]"PHP: ¿Qué es PHP? - Manual", Php.net, 2018. [Online]. Available:

http://php.net/manual/es/intro-whatis.php. [Accessed: 03- Dec- 2018].

[8]"CakePHP", Es.wikipedia.org, 2018. [Online]. Available:

https://es.wikipedia.org/wiki/CakePHP. [Accessed: 03- Dec- 2018].

[9]"Internacionalización (I18N) - Lemoine International (es)", Lemoine-

international.com, 2018. [Online]. Available: http://www.lemoine-

international.com/index.php/internacionalizacion-i18n.html. [Accessed: 03- Dec-

2018]

[10]"Mapeo objeto-relacional", Es.wikipedia.org, 2018. [Online]. Available:

https://es.wikipedia.org/wiki/Mapeo_objeto-relacional. [Accessed: 03- Dec- 2018].

Page 58: Tesina Ventajas de Programar en Web utilizando CakePHP

58

[11]"Andamiaje (programación)", Es.wikipedia.org, 2018. [Online]. Available:

https://es.wikipedia.org/wiki/Andamiaje(programación). [Accessed: 03- Dec- 2018].

[12]S. Programación en Castellano, "Pros y contras de los frameworks PHP más

populares", Programación en Castellano., 2018. [Online]. Available:

https://programacion.net/articulo/pros_y_contras_de_los_frameworks_php_mas_p

opulares_1122. [Accessed: 03- Dec- 2018].

[13]"Comparison of web frameworks", En.wikipedia.org, 2018. [Online]. Available:

https://en.wikipedia.org/wiki/Comparison_of_web_frameworks. [Accessed: 03-

Dec- 2018].

[14]S. investigación, "Significado de Metodología de la investigación", Significados,

2018. [Online]. Available: https://www.significados.com/metodologia-de-la-

ivestigacion. [Accessed: 03- Dec- 2018].

[15]"método comparativo", Enciclopedia Financiera, 2018. [Online]. Available:

https://www.enciclopediafinanciera.com/diccionario/metodo-comparativo.html.

[Accessed: 03- Dec- 2018].

[16]"CakePHP de un vistazo - 3.6", Book.cakephp.org, 2018. [Online]. Available:

https://book.cakephp.org/3.0/es/intro.html. [Accessed: 03- Dec- 2018].

[17]"Los 16 mejores Frameworks de PHP", Neoguias, 2018. [Online]. Available:

https://www.neoguias.com/mejores-frameworks-gratuitos-de-php/. [Accessed: 02-

Dec- 2018].

[18]"cakephp/cakephp", GitHub, 2018. [Online]. Available:

https://github.com/cakephp/cakephp. [Accessed: 03- Dec- 2018].

Page 59: Tesina Ventajas de Programar en Web utilizando CakePHP

59

Glosario

.NET: Es un framework de Microsoft que hace un énfasis en la transparencia

de redes, con independencia de plataforma de hardware y que permite un

rápido desarrollo de aplicaciones. Basada en ella, la empresa intenta

desarrollar una estrategia horizontal que integre todos sus productos, desde

el sistema operativo hasta las herramientas de mercado.

A

Active record: Es la M en MVC, el modelo, que es la capa del sistema

responsable de representar los datos y la lógica de negocios. Active Record

facilita la creación y el uso de objetos comerciales cuyos datos requieren un

almacenamiento persistente en una base de datos. Es una implementación

del patrón de registro activo que a su vez es una descripción de un sistema

de mapeo relacional de objetos.

AJAX: Es el acrónimo de Asynchronous Javascript and XML, es decir:

Javascript y XML Asíncrono.

Apache: Acrónimo de “a patchy server” es un servicio de páginas web HTTP

de código abierto que sirve para colocar varias plataformas

Aplicación web: Es cualquier aplicación que es accedida vía web por una red

como internet o una intranet.

ASP: Son las siglas de Application Service Providers, empresas que

proporcionan servicios de software a sus clientes a través de una red.

B

Blade: Laravel utiliza Blade para la definición de plantillas en las vistas. Esta

librería permite realizar todo tipo de operaciones con los datos, además de

la sustitución de secciones de las plantillas por otro contenido, herencia entre

plantillas, definición de layouts o plantillas base, etc.

Blundled modularity: Biblioteca de Laravel.

C

Page 60: Tesina Ventajas de Programar en Web utilizando CakePHP

60

CakePHP: Framework para el desarrollo aplicaciones web escrito en PHP

CLI Artisan: Nombre de la interfaz de línea de comandos incluida con

Laravel. Proporciona una serie de comandos útiles para su uso mientras

desarrolla su aplicación. Es impulsado por el potente componente de la

Consola Symfony.

CodeIgniter: Framework para el desarrollo de aplicaciones en php que utiliza

el MVC.

Controlador: Responde a eventos (usualmente acciones del usuario) e

invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la

información.

CRUD: Acrónimo de "Crear, Leer, Actualizar y Borrar" (del original en inglés:

Create, Read, Update and Delete), que se usa para referirse a las funciones

básicas en bases de datos o la capa de persistencia en un software.

CSV: Tipo de documento en formato abierto sencillo para representar datos

en forma de tabla, en las que las columnas se separan por comas.

D

Drupal: Es un CMS o sistema de gestión de contenidos que se utiliza para

crear sitios web dinámicos y con gran variedad de funcionalidades.

F

Fichero: Conjunto de bits que son almacenados en un dispositivo. Un archivo

es identificado por un nombre y la descripción de la carpeta o directorio que

lo contiene.

Forms: Es una etiqueta de HTML que representa un formulario. En este

formulario se agregan los diferentes campos de entrada de datos o de

confirmación, así como los botones, que como mínimo ha de haber uno, el

de envío.

Framework: Estructura conceptual y tecnológica de soporte definida,

normalmente con artefactos o módulos de software concretos, en base a la

cual otro proyecto de software puede ser organizado y desarrollado.

Page 61: Tesina Ventajas de Programar en Web utilizando CakePHP

61

G

GitHub: Plataforma de desarrollo colaborativo de software para alojar

proyectos utilizando el sistema de control de versiones Git.

Grids: Infraestructura que permite la integración y el uso colectivo de

ordenadores de alto rendimiento, redes y bases de datos que son propiedad

y están administrados por diferentes instituciones.

H

Hipótesis: Suposición hecha a partir de unos datos que sirve de base para

iniciar una investigación o una argumentación.

HTML: Lenguaje de marcado que se utiliza para el desarrollo de páginas de

Internet. Se trata de la sigla que corresponde a HyperText Markup Language,

es decir, Lenguaje de Marcas de Hipertexto, que podría ser traducido como

Lenguaje de Formato de Documentos para Hipertexto.

I

I18N: Diseño y la preparación de software, sitios web y otras aplicaciones a

fin de que el código de origen sea válido para la cultura local y pueda soportar

varios idiomas y escrituras.

J

JavaScript: Lenguaje de programación interpretado, dialecto del estándar

ECMAScript. Se define como orientado a objetos, basado en prototipos,

imperativo, débilmente tipado y dinámico.

L

Laravel: Framework de código abierto para desarrollar aplicaciones y

servicios web con PHP 5. Su objetivo es desarrollar aplicaciones con código

PHP de forma elegante y simple.

Page 62: Tesina Ventajas de Programar en Web utilizando CakePHP

62

Layout: Proviene del inglés, que en nuestro idiomas quiere decir diseño,

plan, disposición.

M

Modelo: Representación de la información con la cual el sistema opera, por

lo tanto gestiona todos los accesos a dicha información, tanto consultas

como actualizaciones, implementando también los privilegios de acceso que

se hayan descrito en las especificaciones de la aplicación (lógica de

negocio).

MVC: Acrónico que corresponde a Modelo Vista Controlador.

MySQL: Sistema de gestión de base de datos relacional de código abierto,

basado en lenguaje de consulta estructurado (SQL).

N

Navegador: Programa que permite navegar por internet u otra red

informática de comunicaciones.

O

ORM: Técnica de programación para convertir datos entre el sistema de

tipos utilizado en un lenguaje de programación orientado a objetos y la

utilización de una base de datos relacional como motor de persistencia.

P

Parsear: Significa recorrer todos los registros de una base de datos, el

término se usa mucho en archivos XML, en donde se guarda la información

y con un parser los administras.

PHP: Lenguaje de código abierto muy popular especialmente adecuado para

el desarrollo web y que puede ser incrustado en HTML.

R

Page 63: Tesina Ventajas de Programar en Web utilizando CakePHP

63

Ruby On Rails: Framework de aplicaciones web de código abierto escrito en

el lenguaje de programación Ruby, siguiendo el paradigma del patrón

Modelo Vista Controlador (MVC).

S

Scaffolding: Método de programación para construir aplicaciones de

software de base de datos.

Servidor: Aplicación en ejecución (software) capaz de atender las peticiones

de un cliente y devolverle una respuesta en concordancia.

Symfony: Framework diseñado para optimizar el desarrollo de las

aplicaciones web basado en el patrón Modelo Vista Controlador.

T

Tags: Comandos que los programas navegadores leen e interpretan para

armar y dar forma a las páginas de Internet.

Template: Medio o aparato o sistema, que permite guiar, portar, o construir,

un diseño o esquema predefinido.

U

UI: Programa informático que actúa de interfaz de usuario, utilizando un

conjunto de imágenes y objetos gráficos para representar la información y

acciones disponibles en la interfaz.

V

Vista: Presenta el 'modelo' (información y lógica de negocio) en un formato

adecuado para interactuar (usualmente la interfaz de usuario), por tanto

requiere de dicho 'modelo' la información que debe representar como salida.

X

XHTML: Sigla de la lengua inglesa que procede de la expresión Extensible

Hypertext Markup Language. En nuestro idioma, dicha frase puede

Page 64: Tesina Ventajas de Programar en Web utilizando CakePHP

64

traducirse como Lenguaje de Marcado de Hipertexto Entendido. Estas ideas

pertenecen al ámbito de la informática y se vinculan específicamente con

Internet.

Y

Yii: Framework PHP basado en componentes de alta performance para

desarrollar aplicaciones Web de gran escala.

Z

Zend: Motor de procesamiento para la interpretación y cifrado del código

PHP, desde la versión 4. Desarrollado por Zend Technologies para brindar

un equipo de soporte y acelerar la carga de aplicaciones realizadas con PHP.