INSTITUTO POLITECNICO NACIONAL
Unidad
Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y
Administrativas
HERRAMIENTA AUTOMATIZADA
“LARAVEL”
Integrantes:
Álvarez Hernández Ma. Isabel
García Ayala Martín
Hernández Figueroa Luis Javier
López Jiménez Viridiana Nayeli
Muñoz Valencia Raziel Kuauhtzin
Coordinador:
Álvarez Hernández Ma. Isabel
06/05/2016
Contenido
Laravel es un framework
joven con un gran futuro. Cuenta con una comunidad llena de energía,
documentación atractiva de contenido claro y completo, además, ofrece las
funcionalidades necesarias para desarrollar aplicaciones modernas de
manera fácil y segura.
En el 2011 su creador,
Taylor Otwell, lo mostró por primera vez al mundo. Por lo tanto, se trata de un
framework con un enfoque fresco y moderno ya que es bastante joven. Está hecho
para 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.
No importa si eres un
experto en PHP o si son tus primeros pasos, cuando lo conozcas, sabrás
que Laravel es el framework que estabas buscando para tus proyectos PHP.
Figura 1:
Laravel
La filosofía de Laravel
es la creación de aplicaciones web con una sintaxis expresiva
y elegante, además se enfoca en hacer el proceso de desarrollo agradable para
el desarrollador sin sacrificar funcionalidad.
¿QUE
ES UN FRAMEWORK?
Framework es un marco
de trabajo (un esqueleto, un patrón) para el desarrollo y/o la implementación
de una aplicación, ya que nos brinda un conjunto de herramientas (utilidades,
librerías) adaptadas al framework concreto para facilitar el desarrollo. Generalmente
los frameworks cuentan con comunidades de developers muy grandes quienes
brindan soporte y nos facilita la vida para concentrarnos en lo que da valor al
cliente y no volver a programar desde cero ciertos patrones que ya fueron
validados.
Frameworks PHP
Symfony, Yii, Zend, CakePHP, CodeIgniter
Denominado también 3
capas, es un patrón de arquitectura de software encargado de separar la lógica
de negocio de la interfaz del usuario en tres componentes distintos y es el más
utilizado en aplicaciones Web, donde la vista es la página HTML y el código que
provee de datos dinámicos a la página, el modelo es la abstracción de la Base
de Datos y la Lógica de negocio y el controlador es el responsable de recibir
los eventos de entrada desde la vista.
Figura 2:
MVC
JUSTIFICACION
- Incluye un ORM(Object-Relational mapping): a diferencia de
CodeIgniter, Laravel incluye un ORM integrado. Por lo cual no debes
instalar absolutamente nada. Ahora bien, yo no soy muy amigo de los ORM’s,
están de moda y todo, pero siento que están sobre-explotados. Hay que
saber cuándo utilizarlos, muchas veces dejan mucho que desear a nivel de
rendimiento.
- Bundles: existen varios paquetes
que extienden a Laravel y te dan funcionalidades increíbles. En la página de “packagist.org” se
pueden consultar los diversos paquetes, entre los que destacan: laracasts/flash, para la gestión de
mensajes entre controladores y vistas; e illuminate/html para la creación de formularios y
validaciones.
- Es elegante y aprendes a programar con
estilos. No más porquerías de códigos que no se entienden, aprenderás
a programar ‘con clase’ y ordenar tu código de manera de que sea lo
más re-utilizable posible.
- Puedes manejar tu base de datos desde la misma
aplicación (vía código) y tener un control de versiones de lo que haces
con ella. Esto se llama migrations. Es excelente herramienta,
porque puedes manejar todo desde tu IDE, inclusive montar datos en tus
tablas, todo desde la misma ventana y vía consola.
- Aprovecha de las ventajas de PHP 5.3. A
diferencia de CodeIgniter que da soporte a versiones más antiguas haciendo
que sea feo programar en él.
- Las rutas te permiten tener
control de las peticiones. Una misma ruta puede responder de distinto modo
a un método GET o POST. A diferencia de CodeIgniter, en Laravel no hay
riesgo de que ‘descubran’ una ruta (URL) mientras no la hayas definido.
- Cuenta con su propio motor de plantillas HTML.
- El framework es actualizable utilizando composer
update y listo, nada de descargar un ZIP y estar remplazando.
- La comunidad está viva. Todas mis dudas me las
responden en menos de 5 minutos en el chat IRC, son todos muy amables.
Las principales
características que este moderno Framework PHP ofrece son:
· Una completa y concisa
documentación que es muy sencilla de leer y comprender. Con código de
ejemplo que es elegante y expresivo, facilitando significativamente aprendizaje
del framework, incluso sólo observando el código.
· Un ORM para manejar
la capa de persistencia de datos de manera muy simple, con sólo un par de
líneas de código se puede hacer mucho. Además, maneja con efectividad las
distintas relaciones entre las tablas de una base de datos.
· Un poderoso administrador
de extensiones (Bundles), en el cual podemos instalarlo inmediatamente,
algunos valiosos Bundles ya están disponible en la propia página de Laravel.
·
Es un proyecto Open Source con
licencia MIT, de uso libre.
Nota: Las extensiones o
Bundles, no sólo nos ayudan a incorporar nuevos módulos en nuestra aplicación,
sino que además nos proveen una ruta para modularizar nuestras
propias aplicaciones web, un aspecto muy valioso en el desarrollo web
profesional.
Hay muchas interesantes
novedades en Laravel, aparte que es muy fácil de aprender, por
ejemplo, Laravel tiene soporte RESTfull muy útil en el
desarrollo de Web service (Servicios Web), que hacen el considerar a
este framework PHP una magnifica opción, transformándolo en tu principal
caballo de batalla para el desarrollo de poderosas aplicaciones web.
El framework Laravel
tiene unos cuantos requisitos de sistema:
·
PHP > = 5.4
·
Extensión PHP MCrypt
·
Extensión PHP OpenSSL
·
Extensión PHP Mbstring
·
Extensión PHP Tokenizer
·
Reducción de costos y tiempos
en el desarrollo y mantenimiento.
·
Curva de aprendizaje
relativamente Baja (en comparación con otros framework Php).
· Flexible y adaptable no solo
al MVC Tradicional (Modelo vista controlador) sino que para reducir código
propone usar “Routes with clousures”
·
Buena y abundante
documentación sobre todo en el sitio oficial.
·
Posee una amplia comunidad y
foros.
·
Es modular y con un amplio
sistema de paquetes y drivers con el que se puede extender la funcionalidad de
forma fácil, robusta y segura.
· Hace que el manejo de los
datos en Laravel no sea complejo; mediante Eloquent (que es un ORM
basado en el patrón active record) la interacción con las bases de datos
es totalmente orientada a objetos, siendo compatible con la gran mayoría de las
bases de datos del mercado actual y facilitando la migración de nuestros datos
de una forma fácil y segura. Otro punto es que permite la creación de consultas
robustas y complejas.
· Facilita el manejo de ruteo de
nuestra aplicación como así también la generación de url amigables y control de
enlaces auto–actualizables lo que hace mas fácil el mantenimiento de un sitio
web.
·
El sistema de
plantillas Blade de Laravel, trae consigo la generación de mejoras en la
parte de presentación de la aplicación como la generación de plantillas más
simples y limpias en el código y además incluye un sistema de cache que las
hace más rápidas, lo que mejora el rendimiento de la aplicación.
·
También cuenta con una
herramienta de interfaces de líneas de comando llamada Artisan que me permite
programar tareas programadas como por ejemplo ejecutar migraciones, pruebas
programadas, etc.
· Tiempo de aprendizaje.
Aprender a utilizar un framework no necesariamente es algo que podamos hacer en
un par de días. Si bien ahorramos mucho tiempo, también tenemos que dedicar
muchísimas horas en aprender los aspectos básicos y no tanto. A mayor
conocimiento del framework, más jugo le podemos sacar.
· Dependencia. Una vez que
escribimos un programa para determinado framework es casi imposible migrar a
otro sin tener que reescribir todo el código. En ese sentido cuando comenzamos
un proyecto con un framework prácticamente nos estamos casando con él.
· Falsa sensación de conocer el
lenguaje. Esto es importantísimo porque veo que mucha gente esta confundida en
este aspecto. Programar para determinado un framework no nos hace conocedores
del lenguaje para el que esta creado. El mejor ejemplo: Saber programar
con jQuery no significa saber programar en JavaScript. Es mejor, aprendan el
lenguaje y luego aprendan el framework.
Algunos otros
frameworks de PHP son:
Phalcon
Aquí ya entramos en
un framework muy peculiar, tanto como que se instala como un módulo
de PHP y está escrito en C. Aunque está escrito en C se utiliza como si se usasen
clases normales, por lo que no debemos de preocuparnos por nada que no sea PHP.
Phalcon también
incorpora MVC y una cantidad enorme de funcionalidades extra como: ODM para
Mongo, cifrado, motor de plantilla, gestión de HTTP (respuestas, cabeceras...),
paginación, constructor y validador de formulario, sistema de logging y muchas
más cosas.
CodeIgniter
CodeIgniter es
considerado uno de los frameworks más rápidos actualmente,
implementando de forma ligera el patrón de diseño MVC.
Yii
PHPixie es una buena
alternativa si queremos implementar de forma simple el patrón de
diseño MVC, ya que su objetivo es ser uno de los frameworks más
ligeros en este campo sin añadir ningún tipo de extra.
PHPixie
PHPixie es una
buena alternativa si queremos implementar de forma simple el patrón de
diseño MVC, ya que su objetivo es ser uno de los frameworks más
ligeros en este campo sin añadir ningún tipo de extra.
Medoo
Medoo es un
minúsculo framework de 13kb con una única función: hacer
más simple, seguro y compatible el uso de bases de datos. Además nos da un plus
de seguridad al prevenir inyección de SQL.
Admite distintos
gestores de bases de datos (basados en PDO) como: MySQL, MariaDB, MSSQL,
SQLite, PostgreSQL o SQL Server.
Para
el desarrollo del proyecto, se ocupó como principal herramienta automatizada el
framework Laravel. Pero es importante mencionar que en el desarrollo del
proyecto se utilizaron algunas otras herramientas compatibles directamente con
Laravel, como se enuncian a continuación.
Materialize y Bootstrap. Ambos son frameworks frontend, que sirvieron para el
desarrollo del proyecto de forma atractiva y responsiva de las vistas.
phpMyAdmin. Software
complemento para la manipulación y control de las bases de datos relacionales.
Sublime Text. Por
definición es un editor de texto y código fuente altamente configurable con
depurador de código incluido (útil para reducir las pruebas). Además de ser
extensible para pequeños y grandes proyectos con su facilidad de navegación.
Facilita y acelera el tiempo de codificación.
Al trabajar nuestro
proyecto con el framework Laravel, hemos podido aprender un poco más sobre éste
y sus características. Hemos aprendido cómo crear un proyecto de Laravel y
hemos revisado la estructura del mismo.
Laravel es un framework
muy flexible y fácil de aprender que, seguramente, nos podrá solucionar un gran
número de problemas en el desarrollo de futuros proyectos, además aprenderlo
nos brinda grandes bases de programación ya que es muy restricto con la
semántica y nos ayuda enormemente a ser más ordenados a la hora de programar.
Si el proyecto es muy
simple. No utilizo un framework, no tiene sentido cargar toda una estructura,
un esqueleto con cientos de funciones, si el trabajo a realizar no requiere más
que unas lineas de programación. Por ejemplo, si van a realizar un sitio con un
formulario para recibir consultas y nada más, utilizar un framework ni merece
la pena.
Si el proyecto tiene
una complejidad baja-intermedia. Es probable que utilice un framework. Sitios
del tipo institucionales podemos crearlos en cuestión de horas. Me animo a
decir que minutos, obviamente sacando de lado la parte gráfica. Un framework
para un proyecto de una complejidad intermedia es realmente una bendición.
Si el proyecto es
complejo. Si el proyecto es complejo, no es algo común, probablemente no
utilizaría un framework, aunque en este punto en particular habría que evaluar
que tan útil es el framework en base a nuestros requerimientos. Es solo
cuestión de analizar las ventajas y desventajas en cada caso en particular.
[Figura 1. Laravel]. Recuperado de: https://krify.co/wp-content/uploads/2015/11/laravel-2.jpg
[Figura 2. MVC].
Recuperado de: http://67.media.tumblr.com/f67f283c8555ae7f354930609324bf6d/tumblr_inline_n9zy95gDji1slq7tj.png