Post on 25-Jun-2022
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.
2
3
4
5
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.
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
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
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
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
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
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.
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.
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.
15
CAPÍTULO I
ANTECEDENTES Y PLANTEAMIENTO DEL
PROBLEMA
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
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.
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
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.
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.
21
CAPÍTULO II
ESTADO DEL ARTE
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
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.
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.
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).
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
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.
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.
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
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,
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.
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.
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.
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
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
36
CAPÍTULO III
DISEÑO Y DESARROLLO
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.
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.
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.
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.
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:
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:
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.
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.
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]
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
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.
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.
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
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:
51
Figura 26. Actualizar index
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
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]
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.
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.
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.
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].
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].
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
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.
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.
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
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
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.