FACULTAD FACULTA D DE INGENIERÍA INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
TEMA
: DESARROLLO WEB ENTORNO A SERVIDOR
ASIGNATURA
: TECNOLOGÍA WEBII
DOCENTE TUTOR
: MG. EDGARD VILCARINO ZELADA
CICLO
: VI
INTEGRANTES
:
IDROGO CAVERO ARTURO PAÚL
PIURA – PERÚ 2017
Contenido INTRODUCCION ........................................................................................................................................................ 3 ¿QUE ES UN FRAMEWORK? ..................................................................................................................................... 3 MVC (MODELO-VISTA-CONTROLADOR) ................................................................................................................... 4 JUSTIFICACION .......................................................................................................................................................... 5 CARACTERÍSTICAS ..................................................................................................................................................... 6 ¿CUÁNDO UTILIZARLO? ............................................................................................................................................ 6 REQUISITOS DEL SERVIDOR ...................................................................................................................................... 6 VENTAJAS .................................................................................................................................................................. 7 DESVENTAJAS ........................................................................................................................................................... 8 MERCADO DE COMPETENCIA ................................................................................................................................... 8 OTRAS HERRAMIENTAS AUTOMATIZADAS .............................................................................................................. 9 CONCLUSIÓN ..........................................................................................................................................................10 REFERENCIA DOCUMENTAL ...................................................................................................................................11
2
INTRODUCCION 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.
Figur a 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,
3
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
MVC (MODELO-VISTA-CONTROLADOR) 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.
Figur a 2: MVC
4
JUSTIFICACION 1. 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. 2. 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: y vistas; e
laracasts/flash ,
illuminate/html para
para la gestión de mensajes entre controladores
la creación de formularios y validaciones.
3. Es elegante y aprendes a prog ramar con estil os . 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. 4. 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. 5. 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. 6. 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. 7. Cuenta con su propio motor de plantillas HTML. 8. El framework es actualizable utilizando compos er update y listo, nada de descargar un ZIP y estar remplazando. 9. La comunidad está viva. Todas mis dudas me las responden en menos de 5 minutos en el chat IRC, son todos muy amables.
5
CARACTERÍSTICAS 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.
¿CUÁNDO UTILIZARLO? 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.
REQUISITOS DEL SERVIDOR 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 6
VENTAJAS
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.
7
DESVENTAJAS
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.
MERCADO DE COMPETENCIA 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. 8
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.
OTRAS HERRAMIENTAS AUTOMATIZADAS 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
9
pequeños y grandes proyectos con su facilidad de navegación. Facilita y acelera el tiempo de codificación.
CONCLUSIÓ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.
10
REFERENCIA DOCUMENTAL Cesar Anton. (2015). Laravel, el mejor framework en PHP. Noviembre 01 2017, de platzi.com Sitio web: https://platzi.com/blog/laravel-framework-php/ Pablo. (2012). Laravel: Un framework PHP para los más puristas. Noviembre 01 2017, de kabytes.com Sitio web: http://www.kabytes.com/programacion/laravel-un-framework-phppara-los-mas-puristas/ JLinares. (2015). Laravel: Introducción y Conceptos básicos. Noviembre 01 2017, de devacademy.la Sitio web: http://blog.devacademy.la/post/94202131491/tutorial-laravelintroducci%C3%B3n-y-conceptos Juan Carlos Núñez. (2014). Laravel: ventajas del framework PHP de moda. Noviembre 01 2017, de nubelo.com Sitio web: http://www.nubelo.com/blog/ventajas-del-framework-modalaravel/
11