61
UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE INGENIERÍA EN INFORMÁTICA Tesina Análisis de características de los framework de desarrollo en PHP más populares para la elaboración de sistemas de información WEB. Para cumplir la acreditación de las estadías profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática Autor: Jorge Iván Ramírez Osuna Asesor: Dr. Rodolfo Ostos Robles Asesor OR: Ing. Javier Eduardo Anguiano Guerrero Mazatlán, Sinaloa. 15 de diciembre de 2017

Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE

INGENIERÍA EN INFORMÁTICA

Tesina

“Análisis de características de los framework de desarrollo en PHP más

populares para la elaboración de sistemas de información WEB.”

Para cumplir la acreditación de las estadías profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática

Autor:

Jorge Iván Ramírez Osuna

Asesor:

Dr. Rodolfo Ostos Robles

Asesor OR:

Ing. Javier Eduardo Anguiano Guerrero

Mazatlán, Sinaloa. 15 de diciembre de 2017

Page 2: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

2

Page 3: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

3

Page 4: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

4

Page 5: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

5

Page 6: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

6

Agradecimientos. Primeramente, quiero agradecer a la Universidad Politécnica de Sinaloa (UPSIN) por

haberme aceptado ser parte de ella y abierto las puertas de sus aulas para poder

estudiar la carrera Ingeniería en Informática, así como también a los docentes que

brindaron sus conocimientos, consejos, apoyo, y que estuvieron involucrados en mi

desarrollo como estudiante e ingeniero.

Agradezco también a mi asesor de tesina el Dr. Rodolfo Ostos Robles por

haberme facilitado la oportunidad de recurrir a su tiempo, capacidad, y conocimiento

científico, así como su guía durante el proceso de desarrollo de la tesina.

Mi agradecimiento también va dirigido al Ing. Javier Eduardo Anguiano

Guerrero, Líder de Proyectos de la empresa SOLEMTI, y a todo el equipo involucrado

durante el periodo de estadías, por haber brindado su apoyo, y aceptado tenerme

como practicante durante el tiempo establecido de prácticas profesionales.

Finalmente, agradezco también a todas las personas involucradas,

principalmente mi familia y mi novia, posteriormente a mis amigos, colegas y

compañeros que estuvieron a lo largo de todos los niveles de Universidad ya que han

aportado a mis ganas de salir adelante en mi carrera profesional.

Page 7: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

7

Índice temático.

Agradecimientos. ........................................................................................................ 6

Resumen. ................................................................................................................. 10

Abstract ..................................................................................................................... 11

Introducción. ............................................................................................................. 12

Capítulo I. Antecedentes ........................................................................................... 13

Organigrama de la empresa. .............................................................................. 16

Planteamiento del problema. .............................................................................. 17

Capítulo II. Marco referencial y marco teórico........................................................... 20

¿Qué es una aplicación web? ............................................................................ 21

¿Qué es HTML? ................................................................................................. 23

¿Qué es CSS? ................................................................................................... 24

¿Qué es JavaScript? .......................................................................................... 25

¿Qué es PHP? ................................................................................................... 27

¿Qué es estructura MVC (Modelo-Vista-Controlador)? ...................................... 28

¿Por qué utilizar la estructura MVC (Modelo-Vista-Controlador)? ...................... 29

Frameworks de desarrollo de PHP ..................................................................... 31

Laravel ............................................................................................................... 34

CakePHP............................................................................................................ 36

CodeIgniter ......................................................................................................... 38

Symfony ............................................................................................................. 41

Capítulo III. Metodología ........................................................................................... 49

¿Qué es la metodología comparativa? ............................................................... 50

¿Por qué la metodología comparativa? .............................................................. 50

Capítulo IV. Resultados y conclusiones .................................................................... 52

Resultados. ........................................................................................................ 53

Conclusiones. ..................................................................................................... 54

Bibliografía. ............................................................................................................... 55

Glosario. ................................................................................................................... 58

Page 8: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

8

Índice de fotografías.

IMAGEN 1.1 - Imagen logotipo de empresa SOLEMTI……………………………… 14

IMAGEN 1.2 - Localización de la empresa SOLEMTI en Google

Maps…………………………………………………………………………………...…... 15

IMAGEN 1.3 - Fachada del edificio de la empresa SOLEMTI……………………..… 15

IMAGEN 1.4 - Organigrama de la empresa SOLEMTI…………………………...…... 16

IMAGEN 2.1 - Flujo de trabajo de una aplicación Web………………………..……… 22

IMAGEN 2.2 - Imagen logotipo HTML……………………………………………..…… 23

IMAGEN 2.3 - Imagen logotipo CSS…………………………………………………..... 24

IMAGEN 2.4 - Imagen logotipo JavaScript………………………………………...…… 26

IMAGEN 2.5 - Imagen logotipo PHP…………………………………………………..... 28

IMAGEN 2.6 - Diagrama ilustrativo que marca el flujo de la estructura MVC…….... 31

IMAGEN 2.7 - Ilustración de frameworks de desarrollo Web PHP………………..… 32

IMAGEN 2.8 - Interés a lo largo del tiempo en los framework de desarrollo Web más

populares a lo largo de los últimos años…………………………………………..…… 32

IMAGEN 2.9 - Diagrama de pastel. Gráfica de medida de popularidad de los

frameworks PHP en la plataforma GitHub……………………………………………… 33

IMAGEN 2.10 - Imagen logotipo Laravel…………………………………………..…… 34

IMAGEN 2.11 - Imagen logotipo CakePHP…………………………………………….. 36

IMAGEN 2.12 - Imagen logotipo CodeIgniter……………………………………...…... 38

IMAGEN 2.13 - Imagen logotipo Symfony……………………………………………… 41

IMAGEN 2.14 - Imagen logotipo de licencia FreeBSD………………………………... 44

IMAGEN 2.15 - Imagen logotipo de licencia MIT…………………………………….... 44

IMAGEN 2.16 - Ejemplo de interfaz de líneas de comandos post- instalación de

Laravel……………………………………………………………………………………… 45

Page 9: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

9

Índice de tablas.

TABLA 2.1 - Tabla comparativa de características de frameworks de desarrollo

PHP…………………………………………………………………………………………. 43

TABLA 2.2 - Comparativa de frameworks de desarrollo web PHP………………..… 46

TABLA 4.1 - Tiempo de realización de un sistema web…………………………….... 53

Page 10: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

10

Resumen. El siguiente documento se concentra en el análisis de los framework de desarrollo en

lenguaje de programación PHP más populares para la elaboración de sistemas de

información WEB.

Uno de los problemas principales problemas para cualquier desarrollador de un

sistema de información WEB es saber elegir las herramientas adecuadas para

comenzar un proyecto y no tener una curva de dificultad bastante inclinada durante el

posterior desarrollo del mismo.

La implementación de un framework de desarrollo en un proyecto es una

solución ya que la curva de aprendizaje de éstas no es complicada, son orientado a

objetos, incorpora el patrón Modelo-Vista-Controlador, se puede adaptar a cualquier

proyecto desarrollado en PHP puro, entre otras características.

Por lo tanto, el objetivo fundamental es identificar un framework de desarrollo

que cumpla con las necesidades de un proyecto y permita agilizar el desarrollo

analizando cada una de las características y cualidades con las que cuentan.

Palabras clave: PHP, framework, popular.

Page 11: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

11

Abstract The following document focuses on the analysis of the most popular PHP development

frameworks for the development of a WEB information system.

One of the main problems for any developer of a WEB information system is to

know how to choose the right tools to start a project and not having a difficulty curve

quite inclined during the subsequent development of it.

The implementation of a development framework in a project is a solution since

the learning curve of these frameworks is not complicated, they are object oriented, it

incorporates the Model-View-Controller model, it can be adapted to any project

developed in pure PHP, among other features.

Therefore, the fundamental objective is to identify a PHP development

framework that meets the needs of a project and allows to speed up the development

by analyzing each of the characteristics and qualities that they have.

Keywords: PHP, framework, popular.

Page 12: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

12

Introducción.

La presente tesina denominado: “Análisis de características de los framework de

desarrollo en PHP más populares para la elaboración de sistemas de información

WEB”; es un documento informativo que tiene como objetivo destacar las cualidades

de diferentes herramientas de programación, mejor conocidas como framework de

desarrollo, para la elaboración de páginas, aplicaciones o sistemas de información

WEB.

Los framework de desarrollo facilitan, organizan y optimizan la programación

web de muchas maneras. Primeramente, los framework de desarrollo incrementan la

productividad de los programadores ya que el escribir un código, que usualmente

tomaría horas o días y cientos de líneas de código, pueden ser realizados incluso en

minutos con ayuda de las funciones pre-establecidas en un proyecto creado con éste.

Asimismo, cuentan con una ventaja de seguridad ya que los usuarios se convierten

en los testers de éstos gracias a la comunidad activa de desarrolladores y la rápida

respuesta de los creadores de la mayoría de los framework de desarrollo en PHP más

populares.

También, se puede incluir que éstos cuentan con una vasta documentación y

foros activos donde cualquier otro desarrollador puede resolver tus dudas. Finalmente,

una de las características más importantes para los desarrolladores es que la mayoría

de los framework más populares son gratis, y te permiten programar más rápido con

menor esfuerzo reduciendo así considerablemente el costo de desarrollo.

A continuación, se realizará un análisis comparativo de los framework de

desarrollo en PHP más populares, exponiendo sus características, similitudes,

diferencias, ventajas y desventajas.

Page 13: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

13

Capítulo I. Antecedentes

_____________________________________________

En este capítulo se introduce con los datos relevantes en dónde se

realiza el presente documento durante el periodo de estadías

profesionales. Asimismo, se establecen los objetivos de esta

investigación, qué se desea contestar, la hipótesis a probar, las

limitaciones y justificación de la misma.

Page 14: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

14

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.

IMAGEN 1.1 – Imagen logotipo de empresa SOLEMTI.

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.

Page 15: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

15

Localización.

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

Hacienda las Cruces, 82126 Mazatlán, Sin.

A continuación, se anexa un mapa de localización de la empresa SOLEMTI y

foto de fachada de la empresa.

IMAGEN 1.2 - Localización de la empresa SOLEMTI en Google Maps.

IMAGEN 1.3 - Fachada del edificio de la empresa SOLEMTI.

Page 16: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

16

Objetivos y prioridades 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.

Organigrama de la empresa.

A continuación, se presenta un organigrama de la empresa SOLEMTI dónde se refleja

claramente el consejo gerencial de manera jerárquica y semántica divida en cinco

actividades centrales para la operatividad de la empresa.

IMAGEN 1.4 – Organigrama de la empresa SOLEMTI.

Page 17: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

17

Visión.

Ser reconocidos como la empresa que rompe paradigmas y es reconocida como el

líder en el mercado de desarrollo de Tecnologías de Información, empoderando el

desarrollo personal de nuestros colaboradores.

Misión.

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.

Planteamiento del problema.

Como planteamiento del problema se puede redactar la actual desinformación sobre

los beneficios que los framework de desarrollo en PHP pueden tener en la vida

cotidiana de un desarrollador WEB. Se sabe que el lenguaje de programación PHP es

un lenguaje orientado al lado del servidor, y por lo tanto el hacer una simple función

puede llevar bastante tiempo y una gran cantidad de líneas de código para llegar a

una solución.

Uno de los principales problemas que genera esta desinformación sobre las

herramientas conocidas como frameworks de desarrollo, es la falta de integración a

proyectos actuales, causando así una problemática relacionada al esfuerzo invertido,

al capital de la empresa invertido en el proyecto, y el tiempo invertido en el desarrollo

del mismo. De igual manera, provienen problemas secundarios como diversidad de

herramientas parecidas y la adaptación de éstos a las necesidades técnicas de un

proyecto, y la poca información que existen sobre ellas al momento de elegir cuál es

la indicada para su realización.

Mientras tanto, un framework de desarrollo en PHP, como lo son CodeIgniter,

CakePHP, Laravel y Symfony, de los que se espera desglosar las características de

una manera analítica y detallada, te permite realizar tareas en un periodo de tiempo

menor, con menor esfuerzo y menor cantidad de líneas de código.

Propuesta de investigación.

Con este documento se propone realizar un análisis a los framework de desarrollo en

PHP más populares del año 2017 tomando en cuenta sus características, cualidades,

ventajas y desventajas para así poder clarificar la problemática actual de

desinformación sobre lo que es un framework de desarrollo PHP.

Page 18: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

18

Objetivos.

Se establecieron los siguientes objetivos que guiarán este trabajo de investigación.

General.

El objetivo general de esta investigación es:

Proponer un análisis detallado de las características, ventajas y desventajas en

el uso de framework de desarrollo en PHP.

Particulares.

Orientar a programadores WEB sobre las características y consecuencias de

uso de un framework de desarrollo PHP.

Determinar la adaptabilidad de un framework de desarrollo PHP a un sistema

de información WEB.

Diferenciar las características más importantes de los framework de desarrollo

PHP más usados del año 2017.

Preguntas de investigación

1. ¿Qué es un framework de desarrollo en PHP?

2. ¿Cuáles son las características principales de un framework de desarrollo en

PHP?

3. ¿Qué diferencias técnicas existen entre los framework de desarrollo en PHP

más populares?

4. ¿Cuál puede ser considerado el mejor framework de desarrollo en PHP?

Hipótesis.

Los framework de desarrollo en PHP son herramientas útiles, seguras, escalables,

adaptables, facilitadoras para la elaboración de un sistema de información web

reduciendo más del 50% del esfuerzo implementado por los programadores WEB

hasta y reduciendo el costo de producción de un proyecto.

Limitaciones y supuestos.

Se limitará al equipo de desarrollo WEB de la empresa SOLEMTI, agencia mazatleca

de desarrollo WEB, móvil y servicios de tecnologías de información. Debido a una gran

cantidad de herramientas conocidas como framework de desarrollo PHP, por lo tanto,

se reduce el número de objetos de estudio a solo cuatro.

Justificación.

Un framework de desarrollo web es un tipo de herramienta específicamente diseñada

para ayudar al desarrollo de aplicaciones web a los programadores. Estas

Page 19: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

19

herramientas típicamente cuentan con funcionalidades esenciales que en la mayoría

de las aplicaciones web son comunes, así como el manejo de sesión de usuarios, la

persistencia de los datos, y un sistema de templates o modelado. El usar un framework

apropiado en un proyecto enfocado al desarrollo de una aplicación web, un

desarrollador siempre puede ahorrarse una cantidad significante de tiempo dedicada

a la programación y diseño de una página web.

Cada framework de desarrollo es diferente, pero muchos de ellos proveen una

gran variedad de características y herramientas para los desarrolladores. Asimismo,

al usar una de estas herramientas, el programador evita tener que reutilizar y re

implementar estas mismas herramientas para cada aplicación web que vaya a ser

creada.

Por lo tanto, se propone definir las diferencias, similitudes, ventajas y

desventajas de estas herramientas que facilitan el desarrollo, disminuyendo costos,

tiempo y esfuerzo, y optimizando el trabajo para así tener el conocimiento suficiente

para poder elegir entre una de estas herramientas.

Page 20: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

20

Capítulo II. Marco referencial y marco teórico

_____________________________________________

En este capítulo se definen conceptos esenciales, elementales y

relevantes a esta investigación. Posteriormente, se analizan las

características más importantes de cuatro frameworks de desarrollo PHP

para así concluir con un análisis apoyado de unas tablas comparativas.

Page 21: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

21

Introducción

Millones de empresas utilizan Internet como un canal de comunicación rentable. Les

permite intercambiar información con su mercado objetivo y realizar transacciones

rápidas y seguras. Sin embargo, una participación efectiva entre empresa-cliente, solo

es posible cuando la empresa puede capturar y almacenar todos los datos necesarios,

y tiene un medio para procesar esta información y presentar los resultados al usuario.

Se presenta una ilustración demostrando la relevancia actual

Por lo tanto, para poder analizar las diferencias técnicas entre los framework de

desarrollo en PHP más populares, es necesario dejar en claro algunas definiciones,

ya que de esta manera la curva de dificultad de compresión a este documento será

menor y facilitará al lector su interés.

¿Qué es una aplicación web?

Las aplicaciones web suelen codificarse 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 un procesamiento del lado del servidor. Otros son completamente estáticos

y no requieren procesamiento en el servidor. [02]

De la misma manera, usan una combinación de scripts del lado del servidor

(PHP) para manejar el almacenamiento y la recuperación de la información, y scripts

del lado del cliente (JavaScript y HTML) para presentar información a los usuarios.

Esto les permite a los usuarios interactuar con la compañía usando formularios en

línea, sistemas de administración de contenido, carros de compras y más. Además,

las aplicaciones permiten a los empleados crear documentos, compartir información,

colaborar en proyectos y trabajar en documentos comunes independientemente de la

ubicación o el dispositivo.

La aplicación web requiere un servidor web para gestionar las solicitudes del

cliente, un servidor de aplicaciones para realizar las tareas solicitadas y, a veces, una

base de datos para almacenar la información. [02]

Para la entera comprensión de lo que es una aplicación web, es necesario

definir un flujo general de su comportamiento.

Page 22: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

22

IMAGEN 2.1 – Flujo de trabajo de una aplicación Web

Teniendo claro el flujo general de una aplicación web, se pueden definir distintas

relevancias por las cuales optar en el desarrollo de una.

Las aplicaciones web se ejecutan en múltiples plataformas sin importar el

sistema operativo o el dispositivo, siempre que el navegador sea compatible.

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

de compatibilidad

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

de compatibilidad

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

hay menos soporte y mantenimiento requerido por la empresa y menos

requisitos para la computadora del usuario final.

Solicitud

El usuario activauna solicitud alservidor web através de Internet,ya sea a través deun navegador webo la interfaz deusuario de laaplicación.

Reenvía

El servidor webreenvía estasolicitud al servidorde aplicaciones webapropiado.

Consulta

El servidor deaplicaciones webrealiza la tareasolicitada, comoconsultar la base dedatos o procesar losdatos, y luegogenera losresultados de losdatos solicitados.

Envía

El servidor de aplicaciones web envía resultados al servidor web con la información solicitada o los datos procesados.

Responde

El servidor web responde al cliente con la información solicitada que luego aparece en la pantalla del usuario

Page 23: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

23

¿Qué es HTML?

En 1990, como parte de su visión de la Web, Tim Berners-Lee definió el concepto

de hypertext , el cual Berners-Lee formalizó el siguiente año a través de una marca

principalmente basa da en SGML . El IETF comenzó formalmente a especificar HTML

en 1993, Y después de varios borradores se liberó la versión 2.0 en 1995. En 1994

Berners-Lee fundó el W3C para desarrollar la Web. En 1996, el W3C asumió el

control de los trabajos de HTML y publicó la Recomendación HTML 3.2 un año más

tarde. HTML 4.0 fue liberada en 1999 y se convirtió en estándar en el año 2000. [18]

IMAGEN 2.2 - Imagen logotipo HTML.

En esos momentos, el W3C casi abandonó HTML en favor de XHTML, creando

un grupo independiente llamado WHATWG en 2004. Gracias al WHATWG, el trabajo

de HTML5 continuó: las dos organizaciones liberaron el primer borrador en 2008 y el

estándar final en 2014.

En 1990, como parte de su visión de la Web , Tim Berners-Lee definió el concepto

de hypertext, el cual Berners-Lee formalizó el siguiente año a través de una marca

principalmente basa da en SGML. El IETF comenzó formalmente a especificar HTML

en 1993, Y después de varios borradores se liberó la versión 2.0 en 1995. En 1994

Berners-Lee fundó el W3C para desarrollar la Web. En 1996, el W3C asumió el control

de los trabajos de HTML y publicó la Recomendación HTML 3.2 un año más tarde.

HTML 4.0 fue liberada en 1999 y se convirtió en estándar en el año 2000.

En esos momentos, el W3C casi abandonó HTML en favor de XHTML, creando

un grupo independiente llamado WHATWG en 2004. Gracias al WHATWG, el trabajo

de HTML5 continuó: las dos organizaciones liberaron el primer borrador en 2008 y el

estándar final en 2014. [04]

HTML, que significa Lenguaje de Marcado para Hipertextos (HyperText Markup

Language) es el elemento de construcción más básico de una página web y se usa

para crear y representar visualmente una página web. Determina el contenido de la

página web, pero no su funcionalidad. Otras tecnologías distintas de HTML son

Page 24: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

24

usadas generalmente para describir la apariencia/presentación de una página web

(CSS) o su funcionalidad (JavaScript). [19]

De la misma manera, HTML le da "valor añadido" a un texto estándar en

español. Híper Texto se refiere a enlaces que conectan una página Web con otra, ya

sea dentro de una página web o entre diferentes sitios web. los vínculos son un

aspecto fundamental de la Web. Al subir contenido a Internet y vincularlo a páginas

de otras personas, te haces participante activo de esta Red Mundial. [19]

A su vez, HTML usa "markup" o marcado para anotar textos, imágenes, y otros

contenidos que se muestran en el Navegador Web. El lenguaje de marcado HTML

incluye "elementos" especiales tales como <head>, <title>, <body>, <header>,

<article>, <section>, <p>, <div>, <span>, <img>, y muchos otros más.

¿Qué es CSS?

Hojas de Estilo en Cascada (Cascading Style Sheets) es el lenguaje utilizado para

describir la presentación de documentos HTML o XML, esto incluye varios lenguajes

basados en XML como son XHTML o SVG. CSS describe como debe ser renderizado

el elemento estructurado en pantalla, en papel, hablado o en otros medios. [05]

IMAGEN 2.3 - Imagen logotipo CSS.

CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de

1994. Al mismo tiempo, Lie trabajaba con Tim Berners-Lee en el CERN. Muchos otros

lenguajes de hojas de estilos fueron propuestos al mismo tiempo, y las discusiones en

las listas de correo públicas dentro del W3C dieron lugar a la primera Recomendación

CSS por el W3C (CSS1) en 1996. En particular, la propuesta de Bert Bos fue

influyente; él fue el coautor de CSS1 y es reconocido como el cocreador de CSS. [05]

Las hojas de estilo han existido de una forma u otra desde los comienzos del

Standard Generalized Markup Language (SGML) en la década de los 80s, y CSS fue

desarrollado para proveer hojas de estilos para la web. Un requerimiento para un

Page 25: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

25

lenguaje de hoja de estilos web era que las hojas de estilo vinieran en diferentes estilos

en la web. [28]

A medida que HTML fue creciendo, llegó a abarcar una amplia variedad de

capacidades de diseño para satisfacer las demandas de los diseñadores web. Esta

evolución dio al diseñador mayor control sobre la apariencia del sitio, con el costo de

un HTML más complejo. Variaciones en las implementaciones de los navegadores

web, como ViolaWWW y WorldWideWeb, hicieron más difícil la consistencia de la

apariencia del sitio web, y los usuarios tenían menos control sobre cómo era mostrado

el contenido web. [28]

El navegador/editor creado por Tim Berners-Lee tenía hojas de estilos que

fueron introducidas dentro del programa. Las hojas de estilos, por lo tanto, no eran

enlazadas a los documentos en la web. Robert Cailliau, también del CERN, quería

separar la estructura de la presentación, de modo que diferentes hojas de estilo

podrían describir diferentes presentaciones para impresión, pantallas y editores.

CSS es uno de los lenguajes base de la Open Web y posee una especificación

estandarizada por parte del W3C. Desarrollado en niveles, CSS1 es ahora obsoleto,

CSS2.1 es una recomendación y CSS3, ahora dividido en módulos más pequeños,

está progresando en camino al estándar. [28]

Es un lenguaje declarativo que controla el aspecto de las páginas web en

el navegador. El navegador aplica declaraciones de estilo CSS a los elementos

seleccionados para mostrarlos correctamente. Una declaración de estilo contiene las

propiedades y sus respectivos valores, los cuales determinan cómo se verá una

página web.

CSS es una de las tres principales tecnologías web, junto

con HTML y JavaScript. CSS usualmente le da estilo a elementos HTML (HTML

elements), pero también puede ser utilizada con otros lenguajes de

marcado como SVG o XML. Una regla CSS es un conjunto de propiedades asociadas

con un selector. [28]

¿Qué es JavaScript?

Page 26: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

26

Concebido como un lenguaje de servidor por Brendan Eich (cuando trabajaba para

Netscape Corp). JavaScript pronto se integró a Netscape Navigator 2.0 en septiembre

de 1995. JavaScript gozó de un éxito inmediato, por lo que Microsoft introdujo Internet

Explorer 3.0 soporte de JavaScript bajo el nombre de JScript en Agosto de 1996. [20]

IMAGEN 2.4 - Imagen logotipo JavaScript.

En noviembre de 1996, Netscape empieza a trabajar junto con ECMA

International para convertir Javascript en un estándar dentro de la industria. Desde

entonces, la versión estandarizada de JavaScript es conocida bajo el nombre de

ECMAScript y la especificación es conocida como ECMA-262. La más conocida (y

más implementada) versión de ECMAScript es ECMA-262 3ra edición. La versión

actual, disponible en todos los navegadores web modernos es ECMA-262 5ta

edición. Actualmente, se está trabajando en una 6ta edición de ECMAScript. [20]

JavaScript (JS) es un lenguaje de programación principalmente utilizado

en navegadores web para escribir páginas web dinámicamente. Pero a menudo

también del lado del servidor.

JavaScript es una importante tecnología web que provee de interactividad y

efectos especiales las páginas web.

Si deseas construir algo así como una simple página web; deberías aprender

algunos conceptos básicos de programación web. Estos conceptos no son difíciles de

aprender, pero JavaScript es una tecnología potente con bastantes características y

algunas de ellas muy complejas, donde no existe una línea de aprendizaje

definida. Sugerimos comenzar con las siguientes páginas a través de los enlaces e ir

adquiriendo los conocimientos necesarios, desde lo más básico hasta lo más

avanzado, o puedes acceder directamente a los contenidos según interés. [20]

JavaScript es principalmente utilizado en los navegadores web. Permitiendo a

los desarrolladores hacer muchísimas cosas: Manipular el contenido de las páginas a

través del DOM, manipular datos con AJAX e IndexedDB, crear gráficos con Canvas,

interactuar con el dispositivo que ejecuta el navegador utilizando varias APIs, etc.

Page 27: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

27

El reciente aumento de las APIs disponibles en los navegadores, como una

gran mejora en el rendimiento, lo convierte en uno de los lenguajes de programación

más usados en el mundo. [20]

Recientemente, JavaScript ha vuelto al servidor con el éxito de Node JS. Esta

plataforma provee un entorno completo de ejecución JavaScript fuera del navegador,

capaz de ser usado en cualquier plataforma (Linux, MacOS y Windows). No es el

único, pero el más usado recientemente para correr JavaScript fuera de los

navegadores. Esto permite el uso de JavaScript como un lenguaje de scripting para

automatizar ciertos procesos en la PC, así como construir HTTP completamente

funcional y servidores Web Sockets. [20]

¿Qué es 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. [09]

PHP, o Preprocesador de Hipertexto, es un lenguaje de scripting del lado del

servidor muy popular. PHP fue creado por Rasmus Lerdorf en 1994 y fue lanzado al

público en junio de 1995. En aquel entonces, era la forma abreviada de las

herramientas de la página de inicio personal. Después de dos años, en 1997, entró en

dominio público como PHP / F1 2.0. Un año después, dos programadores, Zeev

Suraski y Andi Gutmans, reescribieron la base de la versión original y lanzaron PHP

3. PHP 4, que salió en 2000, incorporó un motor de scripting llamado Zend Engine que

fue diseñado por Suraski y Gutmans. Tres versiones más importantes con algunas

subversiones se lanzaron en los últimos años con la última versión 7.0 lanzada en

2015. [09]

PHP puede ser desplegado en la mayoría de los servidores web y en casi todos

los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra

instalado en más de 20 millones de sitios web y en un millón de servidores. El número

de sitios basados en PHP se ha visto reducido progresivamente en los últimos años,

con la aparición de nuevas tecnologías como Node.JS, Golang, ASP.NET, etc. El sitio

web de Wikipedia está desarrollado en PHP.5 Es también el módulo Apache más

popular entre las computadoras que utilizan Apache como servidor web.

El gran parecido que posee PHP con los lenguajes más comunes de

programación estructurada, como C y Perl, permiten a la mayoría de los

programadores crear aplicaciones complejas con una curva de aprendizaje muy corta.

También les permite involucrarse con aplicaciones de contenido dinámico sin tener

que aprender todo un nuevo grupo de funciones. [09]

Page 28: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

28

IMAGEN 2.5 - Imagen logotipo PHP.

El código PHP está bien organizado y se puede incrustar fácilmente en el

código HTML. Funciona en todos los sistemas operativos principales, como Linux,

Windows, Unix y Mac OS, y es compatible con servidores web y empresariales

principales como Apache, Netscape, Microsoft IIS, etc. Además, es más fácil

solucionar problemas en PHP en comparación con otros idiomas de programación del

lado del servidor. Es el recurso más rápido disponible para crear sitios web dinámicos

habilitados para bases de datos. [09]

Para un desarrollador web, diseñar un sitio web complejo pero atractivo en un

corto espacio de tiempo es un gran desafío. Aquí es donde los framework de desarrollo

de PHP demuestran ser útiles. Los framework de desarrollo se pueden usar para

desarrollar sitios web de todos los tamaños y la complejidad. Los más populares en la

actualidad incluyen Laravel, Symfony, CodeIgniter y CakePHP. [09]

Dos décadas después de su creación, PHP ha registrado un crecimiento

fenomenal y sigue siendo fuerte. Hoy, controla más del 80% de todos los sitios web

del mundo. Esto incluye mayores como Facebook, Wikipedia y WordPress entre otros.

[09]

¿Qué es estructura MVC (Modelo-Vista-Controlador)?

El patrón MVC fue una de las primeras ideas en el campo de las interfaces gráficas

de usuario y uno de los primeros trabajos en describir e implementar aplicaciones

software en términos de sus diferentes funciones. [23]

Page 29: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

29

MVC fue introducido por Trygve Reenskaug (web personal) en Smalltalk-76

durante su visita a Xerox Parc6 en los años 70 y, seguidamente, en los años 80, Jim

Althoff y otros implementaron una versión de MVC para la biblioteca de clases de

Smalltalk-80. Solo más tarde, en 1988, MVC se expresó como un concepto general

en un artículo sobre Smalltalk-80. [23]

Algunos aspectos del patrón MVC han evolucionado dando lugar a ciertas

variantes del concepto original, ya que las partes del MVC clásico realmente no tienen

sentido para los clientes actuales:

HMVC (MVC Jerárquico)

MVA (Modelo-Vista-Adaptador)

MVP (Modelo-Vista-Presentador)

MVVM (Modelo-Vista Vista-Modelo)

... y otros que han adaptado MVC a diferentes contextos.

Modelo-vista-controlador (MVC) es un patrón de arquitectura de software, que

separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el

módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC

propone la construcción de tres componentes distintos que son el modelo, la vista y el

controlador, es decir, por un lado, define componentes para la representación de la

información, y por otro lado para la interacción del usuario. [23]

Este patrón de arquitectura de software se basa en las ideas de reutilización de

código y la separación de conceptos, características que buscan facilitar la tarea de

desarrollo de aplicaciones y su posterior mantenimiento.

¿Por qué utilizar la estructura MVC (Modelo-Vista-Controlador)?

Porque es un patrón de diseño de software probado y se sabe que funciona.

Con MVC la aplicación se puede desarrollar rápidamente, de forma modular y

mantenible. Separar las funciones de la aplicación en modelos, vistas y controladores

hace que la aplicación sea muy ligera. Estas características nuevas se añaden

fácilmente y las antiguas toman automáticamente una forma nueva. [23]

El diseño modular permite a los diseñadores y a los desarrolladores trabajar

conjuntamente, así como realizar rápidamente el prototipado. Esta separación

también permite hacer cambios en una parte de la aplicación sin que las demás se

vean afectadas.

Ahora que ya podemos tener una idea de las ventajas que nos puede aportar

el MVC, analicemos las diversas partes o conceptos en los que debemos separar el

código de nuestras aplicaciones.

Modelos

Page 30: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

30

Es la capa donde se trabaja con los datos, por tanto, contendrá mecanismos para

acceder a la información y también para actualizar su estado. Los datos los tendremos

habitualmente en una base de datos, por lo que en los modelos tendremos todas las

funciones que accederán a las tablas y harán los correspondientes selects, updates,

inserts, etc.

No obstante, cabe mencionar que cuando se trabaja con MCV lo habitual

también es utilizar otras librerías como PDO o algún ORM como Doctrine, que nos

permiten trabajar con abstracción de bases de datos y persistencia en objetos. Por

ello, en vez de usar directamente sentencias SQL, que suelen depender del motor de

base de datos con el que se esté trabajando, se utiliza un dialecto de acceso a datos

basado en clases y objetos. [23]

Vistas

Las vistas, como su nombre nos hacen entender, contienen el código de nuestra

aplicación que va a producir la visualización de las interfaces de usuario, o sea, el

código que nos permitirá renderizar los estados de nuestra aplicación en HTML. En

las vistas nada más tenemos los códigos HTML y PHP que nos permite mostrar la

salida.

En la vista generalmente trabajamos con los datos, sin embargo, no se realiza

un acceso directo a éstos. Las vistas requerirán los datos a los modelos y ellas se

generará la salida, tal como nuestra aplicación requiera. [23]

Controladores

Contiene el código necesario para responder a las acciones que se solicitan en la

aplicación, como visualizar un elemento, realizar una compra, una búsqueda de

información, etc.

En realidad, es una capa que sirve de enlace entre las vistas y los modelos,

respondiendo a los mecanismos que puedan requerirse para implementar las

necesidades de nuestra aplicación. Sin embargo, su responsabilidad no es manipular

directamente datos, ni mostrar ningún tipo de salida, sino servir de enlace entre los

modelos y las vistas para implementar las diversas necesidades del desarrollo. [23]

Page 31: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

31

Frameworks de desarrollo de PHP

Un PHP Framework es una colección de archivos que se organizan conjuntamente

para facilitar el desarrollo de una aplicación Web, o un sistema de información Web.

Hay varios Frameworks PHP disponibles en línea, entre los cuales los más populares

son; Symfony, Laravel, CakePHP, CodeIgniter. Estas herramientas facilitan las tareas

típicas de programación, como la configuración de la base de datos, el enrutamiento,

entre otras cosas.

Están diseñados para admitir el desarrollo de aplicaciones web, incluidos

servicios web, recursos web y API web. Los framework de desarrollo web

proporcionan una forma estándar de crear e implementar aplicaciones web. Asimismo,

tienen como objetivo automatizar los gastos generales asociados con las actividades

comunes realizadas en el desarrollo web. Por ejemplo, muchas de estas herramientas

proporcionan bibliotecas para el acceso a la base de datos, estructuras de plantillas y

administración de sesiones, y a menudo promueven la reutilización de códigos.

Aunque a menudo se dirigen al desarrollo de sitios web dinámicos, también se aplican

a sitios web estáticos.

La estructura de un framework de desarrollo de PHP tiene más sentido en el

paradigma de diseño estándar MVC (Model-View-Controller). Separa sus llamadas a

la base de datos (Modelos) desde su lógica comercial (Controladores) desde su

contenido de front-end (Vistas).

IMAGEN 2.6– Diagrama ilustrativo que marca el flujo de la estructura MVC.

Page 32: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

32

IMAGEN 2.7 - Ilustración de frameworks de desarrollo Web PHP.

Los framework de desarrollo de PHP agregan seguridad y eficiencia a los proyectos

desarrollados en éstos mismos. Toman en cuenta cosas como inyecciones de SQL,

ataques XSS y más, y presentan defensas fundamentales contra estas amenazas.

[29]

La siguiente ilustración mostrará el interés de los usuarios hacia los siguientes

frameworks de desarrollo Web PHP: Laravel, Symfony, CakePHP y CodeIgniter,

desarrollado por EllisLab.

IMAGEN 2.8 - Interés a lo largo del tiempo en los framework de desarrollo Web más populares a lo largo de los últimos años.

Page 33: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

33

Se utilizó como rango de tiempo de referencia un periodo de 3 años para ver

tanto el crecimiento en popularidad de éstos, así como su declive como frameworks

para después poder argumentar por qué su historia es así. [29]

De igual manera, se inserta una ilustración mostrando una gráfica de pastel

en la cual toma a sólo 15 frameworks de desarrollo en el año 2015, y mide la

popularidad que éstas tienen en la plataforma GitHub. [34]

IMAGEN 2.9 - Diagrama de pastel. Gráfica de medida de popularidad de los frameworks PHP en la plataforma GitHub

Page 34: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

34

Laravel

Laravel es un 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. Fue creado en 2011 y tiene una gran influencia de frameworks

como Ruby en Rails, Sinatra y ASP.NET MVC. [10]

En el 2011 su creador, Taylor Otwell, mostró Laravel por primera vez al mundo.

Por lo que, se trata de un framework con un enfoque fresco y moderno; al ser bastante

joven. Está hecho con la arquitectura MVC y resuelve necesidades actuales como

manejo de eventos y autenticación de usuarios. Además, cuenta con un código

modular y extensible por medio de un administrador de paquetes y un soporte robusto

para manejo de bases de datos.

IMAGEN 2.10– Imagen logotipo Laravel

Laravel es un framework joven con gran futuro. Cuenta con una comunidad

llena de energía, documentación atractiva de contenido claro y completo; y, además,

ofrece las funcionalidades necesarias para desarrollar aplicaciones modernas de

manera fácil y segura. Está equipado con un montón de características interesantes,

incluyendo enrutamiento RESTful, PHP nativo o atractivo motor ligero y muchos más.

Construido con varios componentes de Symfony, Laravel ofrece a las aplicaciones

web una increíble base de código confiable y bien probado. [10]

Características:

Laravel es un framework de desarrollo completo, diseñado para crear rápidamente

aplicaciones que utilizan la arquitectura MVC. Laravel es actualmente el framework de

desarrollo PHP más popular, con una gran comunidad de desarrolladores.

Cuenta con toneladas de paquetes específicos de Laravel, el motor de plantillas

Blade liviano, pruebas de unidades, ORM, un sistema de empaquetado, controladores

RESTful, y ahora Laravel es el primer marco para presentar el enrutamiento de una

manera abstracta. [10]

Page 35: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

35

Elimina las complicaciones de la organización del código. La gestión de colas

también es una función que maneja las tareas en segundo plano y luego registra la

actividad por usted mientras que las tareas normalmente se ejecutan en la interfaz.

Los paquetes se pueden agregar fácilmente con el robusto Composer integrado en

Laravel. Se integra con Gulp y Elixir por lo que cualquier paquete npm y paquetes

bower se pueden llamar directamente a través de ssh. [10]

Una de las mejores cosas que maneja bien Laravel son las estructuras de SQL

como MongoDB o Redis. Es fácil comenzar con Laravel gracias a su extensa

documentación, popularidad y Laravel Udemy: videos populares y tutoriales

destinados a poner en marcha desarrolladores nuevos en Laravel.

Laravel es modular y extensible. Esto quiere decir que te permite agregar todo

lo que necesitas a través de su directorio Packalyst que cuenta con más de 5500

paquetes. Esto con el objetivo de que siempre encuentres lo que necesitas. Micro-

servicios y APIs. Permite desarrollar fácil y rápidamente micro-servicios y APIs de gran

rendimiento para los proyectos. [10]

Ventajas:

Entre las ventajas que destacan este framework, son:

Organizar archivos y codificar.

Desarrollo rápido de aplicaciones.

Arquitectura MVC (y PHP7).

Pruebas unitarias (RÁPIDO en HHVM).

Excelente documentación.

Alto nivel de abstracción.

Capacidades de sobrecarga usando métodos dinámicos.

Gran cantidad de funcionalidades listas para usar.

Integración de pago con banda.

Paquetes de encriptación muy fuertes.

ORM.

Desventajas:

Entre las desventajas que tiene este framework, se enlistan las siguientes:

Page 36: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

36

No funciona en planes de alojamiento compartido.

Hace muchas consultas en su base de datos.

CakePHP

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. [13]

IMAGEN 2.11 – Imagen logotipo CakePHP.

En el 2005, Michal Tatarynowicz escribió una mínima versión del framework Rapid

Application Framework en PHP. Él encontró que era el comienzo de un framework

muy bueno. Michal publico el framework bajo la licencia MIT, llamándolo Cake, y

abriéndolo a una comunidad de desarrolladores, quienes ahora mantienen cake bajo

el nombre de CakePHP. [13]

Características:

Cakephp es un framework de desarrollo ideal para principiantes y para el desarrollo

rápido de aplicaciones web comerciales. Viene con la generación de código y la

funcionalidad de andamios para acelerar el proceso de desarrollo, al tiempo que trae

toneladas de paquetes para cuidar la funcionalidad común.

Es único al tener convenciones MVC que ayudan a guiar el proceso de

desarrollo. La configuración también es muy fácil ya que elimina la necesidad de

complicados archivos de configuración XML o YAML. [13]

Page 37: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

37

Las compilaciones son rápidas y sus características de seguridad incluyen

medidas para evitar XSS, SQL Injection, CSRF y herramientas para la validación de

formularios. CakePHP está en desarrollo activo con buena documentación y muchos

portales de soporte para ayudarlo a comenzar. [13]

El Soporte Premium también es una opción para los desarrolladores que eligen

utilizar Cakephp, a través de Cake Development Corporation.

Es de código abierto y se distribuye bajo licencia MIT. 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. [13]

CakePHP tiene varias características que hacen que sea una gran elección

como framework para el desarrollo de aplicaciones rápidamente y con la menor

cantidad de molestia.

CRUD de la base de datos integrado.

URLs amigables.

Sistema de plantillas rápido y flexible.

Ayudas para AJAX, Javascript, HTML, formularios, etcétera.

Trabaja en cualquier subdirectorio del sitio.

Access Control Lists.

Sintetización de datos.

Componentes de seguridad y sesión.

Ventajas:

Entre las ventajas que destacan este framework, se enlistan las siguientes:

Framework moderno.

Admite PHP 5.5+.

Sistema Scaffolding y construcciones rápidas.

Muy bueno para aplicaciones web comerciales (licencia MIT).

Acceso a la base de datos, almacenamiento en caché, validación,

autenticación, están integrados.

Las herramientas de seguridad extensas incluyen el sitio cruzado.

Prevención de scripts, prevención de inyección SQL, CSRF y validación de

formulario.

Buena documentación.

Page 38: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

38

Desarrollado activamente.

Desventajas:

No es tan bueno para construir APIS RESTful como en Laravel.

CodeIgniter

CodeIgniter es un framework para aplicaciones web de código abierto para crear sitios

web dinámicos con PHP. Su objetivo es permitir que los desarrolladores puedan

realizar proyectos mucho más rápido que creando toda la estructura desde cero,

brindando un conjunto de bibliotecas para tareas comunes, así como una interfaz

simple y una estructura lógica para acceder esas bibliotecas. [11]

IMAGEN 2.12 – Imagen logotipo CodeIgniter.

También hay que destacar que CodeIgniter es más rápido que muchos otros

entornos. Incluso en una discusión sobre entornos de desarrollo con PHP, Rasmus

Lerdorf, el creador de PHP, expresó que le gustaba CodeIgniter «porque es rápido,

ligero y parece poco un entorno.

Kohana ha creado una rama a partir de CodeIgniter 1.5.4 en 2007, como

resultado del disgusto de la comunidad por la falta de corrección de errores y el deseo

de incorporar otras características demandadas por los usuarios. [11]

Características:

Codeigniter es un framework de desarrollo ideal para el desarrollo rápido de

aplicaciones. Es un framework de desarrollo liviano y de bajo costo, con un espacio

pequeño que se puede instalar simplemente subiéndolo directamente a su hosting.

No se requiere una línea de comando especial o instalación de software. [11]

Crear aplicaciones web completas es muy fácil con su pequeña curva de

aprendizaje y numerosas bibliotecas.

Hablando del este del desarrollo, la documentación de Codeigniter es extensa,

y su comunidad es amplia y muy útil. Code Igniter también cuenta con el respaldo de

Page 39: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

39

una entidad académica: el Instituto de Tecnología de Columbia Británica, que ayudará

a garantizar su continuo desarrollo y crecimiento. [11]

En función de las características, Codeigniter viene con muchas bibliotecas

integradas para pruebas de unidades, validación de formularios, correo electrónico,

sesiones, etcétera. Si no puede encontrar la biblioteca que está buscando, también es

bastante fácil crear la suya y luego compartirla con la comunidad. [11]

Algunos de los puntos más interesantes sobre este framework, sobre todo en

comparación con otros productos similares, son los siguientes:

Versatilidad:

Quizás la característica principal de CodeIgniter, en comparación con otros

frameworks PHP. CodeIgniter es capaz de trabajar la mayoría de los entornos o

servidores, incluso en sistemas de alojamiento compartido, donde sólo tenemos un

acceso por FTP para enviar los archivos al servidor y donde no tenemos acceso a su

configuración. [11]

Compatibilidad:

CodeIgniter, al menos en el momento de escribir este artículo de

desarrolloweb.com, es compatible con la versión PHP 4, lo que hace que se pueda

utilizar en cualquier servidor, incluso en algunos antiguos. Por supuesto, funciona

correctamente también en PHP 5. [11]

Actualizado:

Desde la versión 2 de CodeIgniter ya solo es compatible con la versión 5 de

PHP. Para los que todavía usen PHP 4 pueden descargar una versión antigua del

framework, como CodeIgniter V 1.7.3, que todavía era compatible. Estas versiones

están en la página de descargas de CodeIgniter. [11]

Facilidad de instalación:

No es necesario más que una cuenta de FTP para subir CodeIgniter al servidor

y su configuración se realiza con apenas la edición de un archivo, donde debemos

escribir cosas como el acceso a la base de datos. Durante la configuración no

necesitaremos acceso a herramientas como la línea de comandos, que no suelen

estar disponibles en todos los alojamientos. [11]

Flexibilidad:

CodeIgniter es bastante menos rígido que otros frameworks. Define una

manera de trabajar específica, pero en muchos de los casos podemos seguirla o no y

sus reglas de codificación muchas veces nos las podemos saltar para trabajar como

más a gusto encontremos. Algunos módulos como el uso de plantillas son totalmente

opcionales. Esto ayuda muchas veces también a que la curva de aprendizaje sea más

sencilla al principio. [11]

Page 40: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

40

Ligereza:

El núcleo de CodeIgniter es bastante ligero, lo que permite que el servidor no

se sobrecargue interpretando o ejecutando grandes porciones de código. La mayoría

de los módulos o clases que ofrece se pueden cargar de manera opcional, sólo cuando

se van a utilizar realmente.

Documentación tutorializada:

La documentación de CodeIgniter es fácil de seguir y de asimilar, porque está

escrita en modo de tutorial. Esto no facilita mucho la referencia rápida, cuando ya

sabemos acerca del framework y queremos consultar sobre una función o un método

en concreto, pero para iniciarnos sin duda se agradece mucho. [11]

Ventajas:

Entre las ventajas que destacan este framework, se enlistan las siguientes:

Muy amigable para el desarrollador. No necesita dependencias o soportes

especiales.

Capacidad para utilizar bien los servicios normales de alojamiento web,

utilizando bases de datos estándar como MySQL.

Supera a la mayoría de los otros marcos (sin MVC).

Buena documentación y LTS (Soporte a largo plazo).

Desventajas:

Entre las desventajas que destacan este framework, se enlistan las siguientes:

Sin espacio de nombres, sin embargo, esto puede acelerar.

No es tan amigable con las pruebas unitarias como otros.

Pocas bibliotecas que se construyen dentro del marco

Page 41: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

41

Symfony

En el año 2003, Fabien Potencier, creador de Symfony y actual CEO de Sensio Labs,

investigó acerca de las herramientas open source existentes para el desarrollo de

aplicaciones web en PHP, pero ninguna de las existentes cumplió con sus

expectativas.

IMAGEN 2.13 – Imagen logotipo Symfony.

Cuando PHP 5 fue liberado, consideró que las herramientas que existían en

ese momento habían madurado lo suficiente para ser integradas en un solo

framework. Le llevó un año desarrollar el núcleo de Symfony. Basó su trabajo en el

Modelo Vista Controlador, el ORM de Propel y el ayudante para realizar plantillas de

Ruby on Rails. [12]

La primera versión de Symfony fue lanzada en octubre de 2005, por Fabien

Potencier. Originalmente fue creado para el desarrollo de las aplicaciones de Sensio.

Luego, tras el éxito que tuvo en el desarrollo de una página web para comercio

electrónico y algunos otros proyectos, decidió liberarlo bajo una licencia open source.

En 2012 el CMS Drupal decidió empezar a usar algunos componentes de

Symfony en la versión Drupal 82

Características:

Symfony se promociona desde hace un tiempo como un proyecto muy estable, de alto

rendimiento, bien documentado y modular. Symfony está respaldado por los

SensioLabs franceses, y ha sido desarrollado por ellos y su comunidad. [12]

Symfony es utilizado por muchas empresas de renombre como la BBC y el

proyecto de código abierto como Drupal y eZpublish. Symfony fue escrito teniendo en

cuenta la estabilidad de una manera muy profesional. Su documentación es extensa,

Page 42: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

42

y su comunidad es igual de vasta. construyendo API de REST de rendimiento, así

como aplicaciones web de pleno derecho.

Cuenta con las siguientes características:

Es fácil de instalar y configurar en la mayoría de plataformas.

Independiente del sistema gestor de base de datos.

Utiliza programación orientada a objetos y características como los

espacios de nombres.

Fácil de usar, aunque preferiblemente para el desarrollo de grandes

aplicaciones web.

Sigue la mayoría de mejores prácticas y patrones de diseño para la web.

Preparado para aplicaciones empresariales y adaptable a las políticas de

cada empresa.

Código fácil de leer que incluye comentarios de phpDocumentor.

Potente línea de comandos que facilitan la generación de código, esto es

fundamental para ahorrar tiempo de trabajo.

Ventajas:

Entre las ventajas que destacan este framework, se enlistan las siguientes:

Alto rendimiento, debido al almacenamiento en caché de código de bytes

Estable

Bien documentado, mantenido y apoyado

Muy buen soporte y es muy maduro

Desventajas:

Entre las desventajas que destacan este framework, se enlistan las siguientes:

Si bien la documentación es buena, hay una curva de aprendizaje pronunciada.

Las empresas se están moviendo a las arquitecturas de MVC Framework y

Symfony2 no es compatible con MVC.

Page 43: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

43

A continuación, se mostrará una tabla que muestra detalles y características técnicas

de estos framework de desarrollo web.

Como podemos observar, estos cuatro framework de desarrollo Web tienen fechas de

lanzamiento un poco parecidas, pero podemos afirmar en base a observación de fila

“última versión”, que el framework de desarrollo Web con una versión más alta es

Laravel. [12]

Cabe destacar que la fecha de realización de esta tabla en cuestión es del mes

de junio del año 2017, por lo tanto, podemos asumir que alguno debe de tener una

versión más hasta en la fecha actual en la que se redacta este documento. [12]

Posteriormente, en la observación a la tabla, se puede ver que el tipo de licencia

con la que cuenta el framework CodeIgniter es “BSD”, mientras que Symfony, Laravel

y CakePHP, cuentan con un tipo de licencia MIT.

La diferencia entre estos dos tipos de licencia son las siguientes:

TABLA 2.1 –Tabla comparativa de características de frameworks de desarrollo PHP.

Page 44: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

44

IMAGEN 2.14 – Imagen logotipo de licencia FreeBSD.

Una aplicación licenciada con BSD permite que otras versiones puedan tener

otros tipos de licencias, tanto propietarias como libres. BSD permite que los

redistribuidores puedan hacer casi cualquier cosa con el software, incluyendo usarlo

para productos propietarios.

IMAGEN 2.15 – Imagen logotipo de licencia MIT.

Por el otro lado, la licencia MIT, una de tantas licencias de software que se

origina en el Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of

Technology), permite reutilizar software dentro de Software propietario. [33]

Esto quiere decir que, en términos más profundos respecto a ambas licencias,

el tema de licenciar, el dar permisos a los propietarios de una copia del software con

una de estas licencias, así como la publicación de éstos, son independientes del

desempeño de estas herramientas. [33]

Posteriormente, podemos observar que los requerimientos mínimos para poder

instalar alguno de estos frameworks es el uso de una versión de PHP igual o mayor a

la 5. Actualmente, la última versión estable de este lenguaje orientado al servidor es

la 7.1.12 lanzada el día 24 del mes de noviembre del año 2017. [33]

Page 45: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

45

Analizando con detenimiento las características de los framework de desarrollo

en cuestión, vemos la similitud que existe de Laravel con CakePHP, los cuales usan

los arreglos en lenguaje PHP para el manejo de información de las bases de datos.

Por otro lado, CodeIgniter utiliza un lenguaje de clases asumiendo el uso de la

programación orientada a objetos ya. Mientras tanto, Symfony utiliza XML, CVS y

PHP.

La generación de código para Symfony, Laravel y CakePHP es por medio del CLI; por

lo tanto, todo el código, creación de directorios, documentos, directivas, entre otras

propiedades, se hacen por medio de líneas de comandos. Cabe destacar que, a pesar

que todas estas generan su código por líneas de comandos, no todas presentan esta

interfaz al momento del desarrollo.

IMAGEN 2.16 – Ejemplo de interfaz de líneas de comandos post- instalación de Laravel.

Si proseguimos con la observación en la tabla, podemos aclarar que estos

framework cuentan con un ORM, que es una técnica de programación para convertir

datos entre sistema de tipos utilizado en un lenguaje de programación orientado a

objetos y la utilización de una base de datos relacional.

Esto quiere decir que, es un modelo de programación que consiste en la

transformación de las tablas de una base de datos, en una serie de entidades que

simplifican las tareas básicas de acceso a los datos para el programador por medio

de atajos, alias, o diferentes identificadores los cuales cada framework se encarga de

brindar al desarrollador.

Page 46: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

46

A continuación, se insertará una tabla de comparación de los framework de desarrollo

Web objetivo de estudio.

LARAVEL SYMFONY CODEIGNITER CAKEPHP

Versión de PHP requerida

5.5.9

5.5.9

5.4

5.5.9

Tipos de base de datos

soportadas.

MySQL

Postgress SQLite

SQL Server

MySQL

Postgress SQLite Oracle

MySQL Postgress

MySQL SQLite

Postgress SQL server

Oracle

Almacenamiento en la

nube.

Amazon S3 Rackspace

Amazon S3

(plugin)

Amazon S3 (plugin)

Amazon S3 (plugin)

Documentación oficial en

el sitio.

Tutoriales

Referencias de las API

Lecciones de videos

Tutoriales

Referencias de las API

Algunos tutoriales

Referencias de las API

Tutoriales

Referencias de las API

Instalación de

extensiones

automatizadas.

(Vía Composer)

Solo con librerías externas.

TABLA 2.2 - COMPARATIVA DE FRAMEWORKS DE DESARROLLO WEB PHP

Las características de casi las mismas en distintas propiedades.

Analizando con detenimiento, podemos analizar que el framework CodeIgniter

no tiene tantas características como las demás en la misma tabla. Una desventaja

considerable con la demás es la razón de solo soportar dos tipos de base de datos,

MySQL y Postgress; mientras tanto, Symfony, Laravel y CakePHP añaden a su lista

de tipos de base de datos soportadas a SQLite, SQL Server e incluso Oracle.

Page 47: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

47

Posteriormente, se ve la diferencia respecto al almacenamiento en la nube;

Laravel, que en su caso usa Amazon S3 Rackspace, no es un plugin el cual hay que

instalar como extensión de sí mismo, así dañando incrementalmente el rendimiento

que tiene al momento de hacer las conexiones pertinentes a la nube.

¿Qué es Amazon S3?

Amazon S3 es almacenamiento para Internet. Es un servicio de almacenamiento

sencillo que ofrece a los desarrolladores de software una infraestructura de

almacenamiento de datos de gran escalabilidad, fiable y de baja latencia con costos

muy bajos. [24]

Amazon S3 se ha diseñado con gran cuidado para satisfacer las necesidades

de escalabilidad, fiabilidad, velocidad, costo bajo y simplicidad que se deben cumplir

para los desarrolladores internos de Amazon. Amazon S3 transfiere estos mismos

beneficios a los desarrolladores externos. Puede obtener acceso a más información

sobre los requisitos de diseño de Amazon S3 en la página de detalles de Amazon S3.

[24]

¿Qué puedo hacer con Amazon S3?

Amazon S3 proporciona una sencilla interfaz de servicios web que puede utilizar para

almacenar y recuperar la cantidad de datos que desee, cuando desee y desde

cualquier parte de la Web. Mediante este servicio web, los desarrolladores pueden

crear de forma sencilla aplicaciones que utilizan el almacenamiento de Internet. Dado

que Amazon S3 ofrece una gran escalabilidad y el usuario solo paga por lo que utiliza,

los desarrolladores pueden comenzar con una aplicación pequeña y ampliarla lo que

deseen, sin poner en riesgo el desempeño o la fiabilidad. [24]

Amazon S3 también se ha diseñado para ser muy flexible. Almacene el tipo y

la cantidad de datos que desee; lea el mismo fragmento de datos un millón de veces

o solo en caso de recuperación de desastres de emergencia; cree una aplicación FTP

sencilla o una aplicación web sofisticada como el sitio web de venta al por menor

Amazon.com. Amazon S3 permite a los desarrolladores centrarse en la innovación,

en lugar de devanarse los sesos para almacenar sus datos.

Una característica, no elemental para el funcionamiento de un framework, pero

sí para la popularidad, comprensión y utilización del mismo, es su documentación. [24]

Como definición, en el desarrollo de productos de hardware y software de

computadoras, la documentación es la información que describe el producto para sus

usuarios. Consiste en los manuales técnicos del producto y la información en línea

(incluidas las versiones en línea de los manuales técnicos y las descripciones de las

instalaciones de ayuda). El término también se usa a veces para referirse a la

información de origen sobre el producto que figura en los documentos de diseño,

comentarios detallados del código, notas del producto y notas de la sesión de la

pizarra.

Page 48: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

48

El término se deriva de la idea de que los ingenieros y programadores

"documentan" sus productos en forma escrita. A los primeros usuarios de

computadoras a veces simplemente se les entregaba la "documentación" de los

ingenieros o programadores. A medida que la audiencia del producto creció, se hizo

necesario agregar escritores y editores técnicos profesionales al proceso. En la

actualidad, IBM y otras empresas buscan desarrollar información de productos en

función de lo que los usuarios realmente necesitan hacer al usar el producto.

En esta vista orientada a tareas, la información del producto puede dividirse y

organizarse físicamente en estas categorías de tareas: evaluación, planificación,

configuración o instalación, personalización, administración, uso y mantenimiento del

producto.

La documentación a menudo se crea directamente en el producto como parte

de la interfaz de usuario y en las páginas de ayuda. Los manuales técnicos impresos

están cada vez más disponibles en los sitios web de las empresas en forma de

archivos de Adobe Acrobat Portable Document Format (PDF) o en páginas HTML.

IBM y Microsoft se encuentran entre las editoriales más grandes del mundo.

Teniendo esta definición en mente, la tabla nos muestra la falta de detalles que

existen hacia la documentación por parte de CodeIgniter; le siguen CakePHP y

Symfony con tutoriales y referencias de las APIS, las cuales ayudan bastante a los

desarrolladores a tener una curva de aprendizaje más holgada.

Finalmente, tenemos a Laravel incluyendo en sus características de

documentación, lecciones de videos las cuales facilitan bastante al momento de

aclarar puntos importantes de las propiedades y características del framework.

Por lo tanto, podemos concluir con gran inclinación hacia el uso del framework

Laravel, puesto que, una vez considerando el año de salida, un poco de su historia,

sus ventajas y desventajas; así como sus características principales, su escalabilidad,

curva de aprendizaje, y adaptabilidad a cualquier proyecto; uno se puede dar cuenta

de la relevancia que tiene hoy en día un framework con estas cualidades al momento

de querer desarrollar un sistema en línea.

Por supuesto, es claramente posible que, con el avance de las tecnologías de

información, estas herramientas vayan evolucionando hacia la adaptabilidad del

usuario, causando una gran diferencia en comparación a la investigación y análisis en

el tiempo en el que se es redactado este documento de investigación.

Page 49: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

49

Capítulo III. Metodología

_____________________________________________

En este capítulo se define el concepto de la metodología de

investigación utilizada en esta investigación. De igual manera, se

contesta al por qué utilizarla en este trabajo de investigación.

Page 50: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

50

Metodología

Este documento se utiliza la investigación a diferentes aspectos técnicos y teóricos de

los framework de desarrollo Web de PHP más populares por medio de la comparación

de cualidades, ventajas, desventajas, diferencias, similitudes, entre otras cuestiones

que definen a estas herramientas.

Por lo tanto, la metodología utilizada para esta investigación fue la metodología

comparativa.

¿Qué es la metodología comparativa?

El método comparativo es el procedimiento de la comparación sistemática de casos

de análisis que en su mayoría se aplica con fines de generalización empírica y de la

verificación de hipótesis. Cuenta con una larga tradición en la metodología de las

ciencias sociales; aunque también se encuentra en otras disciplinas.

El método comparativo suele ser popular en un estado temprano de la evolución

de un campo de investigación, cuando los científicos intentan salir del nivel inicial de

los estudios de caso exploratorios a un nivel más avanzado de estructuras teóricas

generales o leyes, como invariantes, causalidad o evolución.

El diseño de la investigación comparativa es simple. Estudiamos ejemplares

que pertenecen al mismo grupo pero que difieren en algunos aspectos. Estas

diferencias llegan a ser el foco de la examinación. La meta es descubrir porqué los

casos son diferentes: para revelar la estructura subyacente general que genera o

permite tal variación.

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. Al comienzo de la redacción de este documento se deja en

claro esta población limitando los objetos de investigación a cuatro frameworks de

desarrollo Web PHP. Muchas veces una muestra de solamente dos ejemplares o

casos no es bastante para eliminar perturbaciones y variaciones indeseadas; en ese

caso tendríamos que comparar varios pares, o clases de casos o ejemplares. En otras

palabras, el diseño de nuestra investigación se convierte en una forma

de clasificación.

¿Por qué la metodología comparativa?

En este documento nos interesa estudiar los framework de desarrollo Web

PHP, y más concretamente el identificar el mejor de entre ellos. Formulada de este

modo, la problemática es demasiado amplia para constituir una pregunta de

investigación definida; es preciso acotar el esfuerzo del analista a un aspecto

específico de esta cuestión general. Una buena pregunta de investigación debe

Page 51: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

51

indagar sobre un fenómeno empírico que presente variación en el mundo real (por

ejemplo, ¿Qué es un framework de desarrollo en PHP?, ¿Cuáles son las

características principales de un framework de desarrollo en PHP?, ¿Qué diferencias

técnicas existen entre los framework de desarrollo en PHP más populares?, ¿Cuál

puede ser considerado el mejor framework de desarrollo en PHP?). Es justamente

esta variación la que inspira la cuestión concreta a ser investigada: ¿por qué en ciertos

casos ocurre algo (Y) y en otros no (no-Y)?

Page 52: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

52

Capítulo IV. Resultados y conclusiones

_____________________________________________

En este capítulo se concluye con una respuesta a las preguntas

definidas al comienzo de esta investigación. Estos resultados y

conclusiones se apoyan por medio de una tabla definiendo la hipótesis

de la investigación como verdadera.

Page 53: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

53

Resultados.

Los resultados obtenidos de esta investigación son mostrados a manera de lista a

continuación:

TABLA 4.1 - Tiempo de realización de un sistema web.

Como se puede observar en la gráfica anterior, se reafirma la hipótesis

formulada al principio de este documento de investigación. Los framework de

desarrollo PHP ayudan a la productividad en relación al tiempo invertido a la

realización de un proyecto tipo sistema de información web.

Obtención una mayor comprensión y acercamiento de la situación actual del

desarrollo de aplicaciones Web basadas en un framework de desarrollo de

PHP.

Poder diferenciar entre los framework de desarrollo Web más populares, sus

características, sus ventajas, desventajas, asimismo sus diferencias y

similitudes.

Expresar de manera gráfica las diferencias técnicas que representan cada

una de estas herramientas para el desarrollo de aplicaciones Web.

Un crecimiento profesional, al haber investigado, analizado, y redactado un

documento informativo relacionado a la programación de páginas web por

medio de un framework de desarrollo en PHP.

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

CakePHP Laravel Sympfony CodeIgniter

Po

rcen

taje

de

tiem

po

de

real

izac

ión

de

un

p

roye

cto

.

Título del eje

Tiempo de realización de un sistema web.

Usando un framework PHP. Usando PHP puro Tiempo hacia la fecha límite.

Page 54: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

54

Conclusiones.

Sabemos que un framework de desarrollo en PHP no es nada más que una librería de

directorios los cuales están ahí para ayudar a los desarrolladores de aplicaciones

Web. Un framework brinda soluciones estandarizadas a problemas típicos que aplican

dentro de la etapa de desarrollo de un sistema de información Web. Sabemos que sus

principales características son la escalabilidad y adaptabilidad a cualquier proyecto

enfocado a sistema de información Web.

Añadiendo a lo anterior; el aumento del uso de Internet entre empresas e

individuos ha influido en la forma en cómo se ejecutan las empresas. Esto ha llevado

a la adopción generalizada de aplicaciones web, con herramientas de desarrollo como

los framework de desarrollo en PHP, a medida que las empresas cambian de modelos

tradicionales a modelos basados en la nube y en las redes. Los framework de

desarrollo en PHP les brindan a las empresas la capacidad de simplificar sus

operaciones, agilizar la escritura de código, manejar el uso de queries a bases de

datos, disminuir esfuerzo de producción, aumentar la eficiencia y reducir los costos.

Estos framework de desarrollo en PHP, como lo son Laravel, CakePHP,

Simfony, y CodeIgniter, brindan funcionalidades las cuales, tomando en cuenta sus

características de seguridad, servicio en la nube, adaptabilidad y escalabilidad, la

empresa con un proyecto se tomará la tarea de analizar las características en relación

a las necesidades de su proyecto para así poder elegir uno el cual se adapte a las

necesidades de su aplicación web.

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

vista del análisis realizado, no cabe duda la importancia de estas herramientas de

desarrollo, y su impacto en el área de desarrollo y programación de sistemas Web,

incluyendo la estabilidad empresarial dentro del mercado, tanto como los empleados

encargados de utilizar directamente estas herramientas adaptándolos a los proyectos

presentes favoreciendo el tiempo y esfuerzo a implementar.

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 55: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

55

Bibliografía.

[01] Sadoski, Darleen. (19 octubre, 1997) Client/Server Software

Architectures--An Overview, Software Technology Roadmap. Recuperado el 20

de septiembre de 2017.

[02] Amos Ndegwa. (31 mayo, 2016) What is a Web Application? MaxCDN,

21. Recuperado el 25 de septiembre de 2017, en

https://www.maxcdn.com/one/visual-glossary/web-application/

[03] Daniel Nations. (19 octubre, 2016) Improve Your Understanding of Web

Applications. LifeWire, 21. Recuperado el 04 de octubre de 2017, en

https://www.lifewire.com/what-is-a-web-application-3486637

[04] Diego, “HTML5: ¿Qué es? Y ¿Cómo usarlo?” [online]. Recuperado el 04

de octubre de 2017. Disponible en: http://www.trazos-

web.com/2010/02/01/html5-que-es-y-como-usarlo/

[05] genbetadev, “Breve introducción a CSS3” [online]. Recuperado el 04 de

octubre de 2016. Disponible en: http://www.genbetadev.com/desarrollo-

web/breve-introduccion-a-css3

[06] CodersEye, “Best PHP Frameworks” [online]. Recuperado el 04 de

octubre de 2017. Disponible en: https://coderseye.com/best-php-frameworks-

for-web-developers/#Best_PHP_frameworks_Compared

[07] Mozilla, “Acerca de JavaScript”, [online]. Recuperado el 04 de octubre de

2017. Disponible en:

https://developer.mozilla.org/es/docs/Web/JavaScript/Acerca_de_JavaScrip

[08] JQuery, “What is JQuery” [online]. Recuperado el 15 de octubre de 2017.

Disponible en: https://jquery.com/

[09] PHP, “What is PHP” [online]. Recuperado el 15 de octubre de 2017.

Disponible en: https://php.net/manual/es/intro-whatis.php

[10] Laravel, “Laravel” [online]. Recuperado el 29 de octubre de 2017.

Disponible en https://laravel.com/

[11] CodeIgniter, “CodeIgniter Web Framework” [online]. Recuperado el 29

de octubre de 2017. Disponible en: https://codeigniter.com/

[12] Symfony, “Symfony” [online]. Recuperado el 29 de octubre de 2017.

Disponible en: http://symfony.es/

Page 56: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

56

[13] CakePHP, “CakePHP - Build fast, grow solid” [online]. Recuperado el 29

de octubre de 2017. Disponible en: https://cakephp.org/

[14] EllisLab, “About – History” [online]. Recuperado el 29 de octubre de 2017.

Disponible en: https://ellislab.com/about/

[15] Ecured, “Ecured” [online]. Recuperado el 29 de octubre de 2017.

Disponible en: https://www.ecured.cu/

[16] UV, “Metodología Observacional” [online]. Recuperado el 29 de octubre

de 2017. Disponible en: https://www.uv.es/~friasnav/Observacional.pdf

[17] Pitt, “Fundamentos de metodologías de investigación” [online].

Recuperado el 29 de octubre de 2017. Disponible en:

http://www.pitt.edu/~asp27/USAL/2007.Fundamentos.pdf

[18] MDN web docs, “HTML” [online]. Recuperado el 07 de noviembre de

2017. Disponible en: https://developer.mozilla.org/es/docs/Web/HTML

[19] MDN web docs, “HTML” [online]. Recuperado el 07 de noviembre de

2017. Disponible en: https://developer.mozilla.org/es/docs/Glossary/HTML

[20] MDN web docs. “JavaScript” [online]. Recuperado el 07 de noviembre de

2017. Disponible en: https://developer.mozilla.org/es/docs/Glossary/JavaScript

[21] MDN web docs. “JavaScript” [online]. Recuperado el 07 de noviembre de

2017. Disponible en: https://developer.mozilla.org/es/docs/Learn/JavaScript

[22] CODEPROJECT. “Simple example of MVC” [online]. Recuperado el 11

de noviembre de 2017. Disponible en:

https://www.codeproject.com/Articles/25057/Simple-Example-of-MVC-Model-

View-Controller-Design

[23] Desarrolloweb.com. “¿Qué es MVC?” [online]. Recuperado el 11 de

noviembre de 2017. Disponible en:

https://desarrolloweb.com/articulos/que-es-mvc.html

[24] Amazon S3. “Amazon S3” [online]. Recuperado el 29 de noviembre de

2017. Disponible en: https://aws.amazon.com/s3/

[25] MySQL. “MySQL Enterprise Edition” [online]. Recuperado el 29 de

noviembre de 2017. Disponible en: https://www.mysql.com/

Page 57: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

57

[26] PostgreSQL. “The oficial site of PostgreSQL” [online]. Recuperado el 29

de noviembre de 2017. Disponible en: https://www.postgresql.org/

[27] XML. “¿Qué es XML? | Manual de XML” [online]. Recuperado el 29 de

noviembre de 2017. Disponible en: www.mundolinux.info/que-es-xml.htm

[28] MDN web docs. “CSS” [online]. Recuperado el 29 de noviembre de 2017.

Disponible en: https://developer.mozilla.org/es/docs/Web/CSS

[29] AppMonks. “Using a framework to create better choices“ [online].

Recuperado el 29 de noviembre de 2017. Disponible en:

http://www.appmonks.net/id/54/using-a-framework-to-create-better-choices/

[30] noeticforce. “Best PHP frameworks for modern web development“

[online]. Recuperado el 29 de noviembre de 2017. Disponible en:

http://noeticforce.com/best-php-frameworks-for-modern-web-development

[31] OpenSource. “Which PHP Framework is better for you?“ [online].

Recuperado el 29 de noviembre de 2017. Disponible en:

https://opensource.com/business/16/6/which-php-framework-right-you

[32] InsaneLabs. “Laravel. The best PHP Framework of 2017“ [online].

Recuperado el 29 de noviembre de 2017. Disponible en:

https://insanelab.com/blog/web-development/laravel-best-php-framework-

2017/

[33] Fdlwiki ELP. “Licencia MIT” [online]. Recuperado el 29 de noviembre de

2017. Disponible en: wikis.fdi.ucm.es/ELP/Licencia_MIT

[34] GitHub. “PHP Framework Benchmark” [online]. Recuperado el 29 de

noviembre de 2017. Disponible en: https://github.com/kenjis/php-framework-

benchmark

Page 58: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

58

Glosario.

A

Ajax: Con Ajax, se hace posible realizar peticiones al servidor y obtener

respuesta de este en segundo plano (sin necesidad de recargar la página web

completa) y usar esos datos para, a través de JavaScript, modificar los

contenidos de la página creando efectos dinámicos y rápidos.

Amazon S3: Amazon S3 es almacenamiento para Internet. Es un servicio de

almacenamiento sencillo que ofrece a los desarrolladores de software una

infraestructura de almacenamiento de datos de gran escalabilidad, fiable y de

baja latencia con costos muy bajos.

API Web: Una API es un conjunto de funciones y procedimientos que cumplen

una o muchas funciones con el fin de ser utilizadas por otro software. Las

siglas API vienen del inglés Application Programming Interface. En español

sería Interfaz de Programación de Aplicaciones.

Aplicación WEB: Aquellas herramientas que los usuarios pueden utilizar

accediendo a un servidor web a través de internet o de una intranet mediante

un navegador.

Arreglos: Grupo o colección finita, homogénea y ordenada de elementos.

Un arreglo es un conjunto de datos o una estructura de datos homogéneos

que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve

para almacenar datos en forma temporal).

C

Cliente: Es una aplicación informática o un ordenador que consume un

servicio remoto en otro ordenador conocido como servidor, normalmente a

través de una red de telecomunicaciones.

Controlador: Es una capa que sirve de enlace entre las vistas y los modelos,

respondiendo a los mecanismos que puedan requerirse para implementar las

necesidades de nuestra aplicación.

CSS: ......... CSS (Cascading Style Sheets, u Hojas de Estilo en Cascada) es la

tecnología desarrollada por el World Wide Web Consortium (W3C) con el fin

de separar la estructura de la presentación.

CRUD: En informática, CRUD es el 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.

Page 59: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

59

CLI: La interfaz de línea de comandos o interfaz de línea de órdenes (en

inglés, command-line interface, CLI) es un método que permite a los usuarios

dar instrucciones a algún programa informático por medio de una línea de

texto simple.

F

Framework de desarrollo: Un framework para aplicaciones web es

un framework diseñado para apoyar el desarrollo de sitios web dinámicos,

aplicaciones web y servicios web. Este tipo de frameworks intenta aliviar el

exceso de carga asociado con actividades comunes usadas en

desarrollos web.

H

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.

J

JavaScript: JavaScript es un lenguaje de programación que se utiliza

principalmente para crear páginas web dinámicas. Una página web dinámica

es aquella que incorpora efectos como texto que aparece y desaparece,

animaciones, acciones que se activan al pulsar botones y ventanas con

mensajes de aviso al usuario.

JQuery: JQuery es una librería de JavaScript (JavaScript es un lenguaje de

programación muy usado en desarrollo web). Esta librería de código abierto,

simplifica la tarea de programar en JavaScript y permite agregar interactividad

a un sitio web sin tener conocimientos del lenguaje.

JSON: Acrónimo de JavaScript Object Notation, es un formato ligero para el

intercambio de datos. JSON es un subconjunto de la notación literal de

objetos de JavaScript que no requiere el uso de XML

Page 60: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

60

M

MySQL: MySQL es un sistema de gestión de base de datos relacional

(RDBMS) de código abierto, basado en lenguaje de consulta estructurado

(SQL). MySQL se ejecuta en prácticamente todas las plataformas, incluyendo

Linux, UNIX y Windows.

Modelo de datos: Un modelo de datos es un lenguaje orientado a hablar de

una Base de Datos. Típicamente un modelo de datos permite describir: Las

estructuras de datos de la base: El tipo de los datos que hay en la base y la

forma en que se relacionan.

Módulo: Un módulo es una porción de un programa de ordenador. De las

varias 70 tareas que debe realizar un programa para cumplir con su función u

objetivos, un módulo realizará, comúnmente, una de dichas tareas (o varias,

en algún caso).

O

ORM: Object-Relational mapping, o lo que es lo mismo, mapeo de objeto-

relacional, es un modelo de programación que consiste en la transformación

de las tablas de una base de datos, en una serie de

entidades que simplifiquen las tareas básicas de acceso a los datos para el

programador.

P

PHP: PHP es un lenguaje de programación de propósito general de código

del lado del servidor originalmente diseñado para el desarrollo web de

contenido dinámico.

POO: La programación orientada a objetos (POO, u OOP según sus siglas en

inglés) es un paradigma de programación que usa objetos en sus

interacciones, para diseñar aplicaciones y programas informáticos. Está

basada en varias técnicas, incluyendo herencia, cohesión, abstracción,

polimorfismo, acoplamiento y encapsulamiento.

PostgreSQL: PostgreSQL es un sistema de gestión de bases de datos

relacional orientado a objetos y libre, publicado bajo la licencia PostgreSQL,

similar a la BSD o la MIT.

Page 61: Análisis de características de los framework de desarrollo en PHP …repositorio.upsin.edu.mx/Fragmentos/tesinas/Tesina... · 2017. 12. 15. · 12 Introducción. La presente tesina

61

S

Servidor: Es una aplicación en ejecución capaz de atender las peticiones de

un cliente y devolverle una respuesta en concordancia.

Servicios Web: Un web service es un conjunto de protocolos y estándares que

sirven para intercambiar datos entre aplicaciones. Permiten la

interoperabilidad entre plataformas de distintos fabricantes por medio de

protocolos estándar y abiertos.

V

Vista: Plantilla de una página web.

W

Web 2.0: El término Web 2.0 o Web social comprende aquellos sitios web que

facilitan el compartir información, la interoperabilidad, el diseño centrado en el

usuario y la colaboración en la World Wide Web.

X

XML: XML es un Lenguaje de Etiquetado Extensible muy simple, pero

estricto que juega un papel fundamental en el intercambio de una gran

variedad de datos. Es un lenguaje muy similar a HTML, pero su función

principal es describir datos y no mostrarlos como es el caso de HTML.

XSS: XSS es un ataque de inyección de código malicioso para su posterior

ejecución que puede realizarse a sitios web, aplicaciones locales e incluso al

propio navegador.