We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 10
PRELIMINARES
RELACIONES ENTRE MODELOS
Tipos de relaciones..
Uno amuchos...
Muchas una
Uno auno. 180
Muchas a muchos:
Tablas pivot...
Relaciones distates, 19
Resumen.
Actividades
10
INTERFACES
DE USUARIO
Recursos.
Laravel Mix.
Introduccion de JavaScript. 17
NPM. on
WebPack..
Bootstrap,
Resumen.
Actividades
FORMULARIOS
Formularios on Laravel..
Collective, 204
Procasar formularios... 29
Pracesar archivos. 202
Model binding, 248
12
USUARIOS:
Internacionalizacién....
Modtficar al idioma
Middleware
‘Autenticacién.
Personalizar la autentcacin....
Socialite
Notificaciones:
Notificacionas por e-mail
Base de datos.
Resumen.
281
287
13
TESTING
Conceptos basicos de testing..
PHPUnit.
Tests untarins
Pruebas unitarias en Laravel.
Code Coverage.PRELIMINARES cae
INTRODUCCION
La programacién es una actividad que, por lo general, demanda realizar
sus primeros pasos en soledad. Si bien existen contexts en los que se nos
invita a trabajar en grupo cuando estamos aprendiendo, llega un momento
en el que es necesario sentarse y empezar a diagramar algoritmos para
resolver la parte del problema que nos toca
Desarrollar software estando solos y luego empezar a trabajar en
grupo requiere de un gran salto, tanto técnico como metodolégico, y
este libro tiene como objetivo darle herramientas al lector para ayudarlo
a realizar mejor esa transicion.
Es usual ver a disefiadores y maquetadores web devenidos en
programadores PHP. Del mismo modo, podemos encontrar ese tipo
de desarrolladores que establecen su carrera alrededor de sistemas
empaquetados como CMS u otro tipo preparados en este lenguaje. Sin
embargo, no es tan frecuente encontrar programadores que puedan
adaptarse rapidamente a entornos de trabajo que contengan procesos de
desarrollo para construir software de mediana o gran escala, y éste es
un perfil muy requerido en el mercado.
Al principio de la obra, estableceremos los conceptos principales que
componen un framework y veremos de qué manera se distinguen de otro
tipo de sistemas. Luego estudiaremos Laravel, el cual, ademas de ser el
proyecto PHP de mayor tendencia segiin Github, presenta amplias ventajas
para el desarrollo de aplicaciones web de calidad.
En la actualidad, Laravel es uno de los frameworks PHP mas completos,
y realizar un libro que permita abordar todos sus temas merece mas de un
volumen. Por eso, esta obra apunta a que aquellos que nunca han trabajado
en un framework puedan introducirse en uno haciendo uso de Laravel; no
obstante, también hace referencia a varios lugares en los cuales el lector
podra profundizar los conocimientos sobre el framework.
Durante cada capitulo se analizara un aspecto del framework por
medio de la construccién de médulos para un blog, por lo que al
finalizar la obra, el lector podra contar con un proyecto completo
realizado con Laravel.
Es importante tener conocimientos basicos en PHP para poder abordar
este texto, los cuales pueden adquirirse a través del libro PHP + MySQI, de
esta misma editorial. También es fundamental contar con conocimientos
basicos del paradigma de programacién orientada a objetos.
Rn www.redusers.comEn este capitulo conoceremos el concepto de framework,
analizaremos las principales caracteristicas de Laravel e
instalaremos todos los componentes necesarios para el ambiente
de desarrollo. Por ultimo, trabajaremos con Composer, el sistema
de manejo de librerias mas utilizado por los frameworks PHP.1. CARACTERISTICAS E INSTALACION aS
éQUE ES UN FRAMEWORK?
Podemos asociar el termino framework a un subsistema y/o conjunto
de librerias que proveen funcionalidades estandar a cualquier sistema;
sin embargo, esta definicion es incompleta, ya que ademas nos brinda:
Una estructura de carpetas y archivos para organizar el codigo.
Una arquitectura para desarrollar un proyecto.
Seguridad, ya que los frameworks son actualizados frecuentemente para poder
implementar medidas contra nuevas amenazas.
Robustez, porque los frameworks on utilizados por muchos programadores en
diversos proyectos: en consecuencia, cada framework esta expuesto a un alcance
mucho mayor al que podemos lograr escribiendo nuestro propio cédigo.
Soporte, ya que al ser utilizado por otros programadores, es muy facil encontrar a
alguien que haya tenido el mismo problema que podamos tener nosotros y que no
logremas resolver.
Un conjunto de buenas practicas de programacién para tener nuestro cédigo lo
mas legible posible, de manera tal que podamos entender el cédigo escrito por otro
programador y, a la vez, hacer que el nuestro sea mas entendible para los demas.
En sintesis, una definicién mas completa de framework es la
siguiente: un conjunto de estructuras y componentes de software
predefinidos e interconectados que sirven de base para la organizacion
y el desarrollo de sistemas con propésitos generales.
éQué no es un framework?
Si realizamos una bisqueda en Internet con los términos Framework
PHP, podemos encontrar una gran cantidad de sistemas que, muchas
veces, no califican técnicamente como framework. En la Tabla 1
conoceremoas los distintos tipos de sistemas existentes, de modo de
poder diferenciarlos con respecto a los frameworks.
“4 www.redusers.comCaos INTRODUCCION A LARAVEL.
> CLASIFICACION DE SISTEMAS BASADOS EN SU ORIENTACION
Secu Mae tL) eed
No estén construidos en torno a una
orientacion especifica, se los denomina de
ropésitos generales.
Framework
Sistemas dedicados al comercio electronic,
Permiten crear sitios web cuyas paginas
pueden ser editadas directamente desde el
navegador.
lf Tabla 1. Sistemas PHP que permiten crear sitios web.
Aplicaciones de un framework
Los frameworks se caracterizan por que pueden servir para
crear cualquier tipo de sistema, ya que al estar orientados a
propdésitos generales, no tienen conceptos de una orientacion
en particular. Por lo tanto, podemos usar un framework para
hacer CMS, e-commerce, VLE 0 Wikis y muchas cosas mas.
Sin embargo, esta propiedad no es reversible, ya que cambiar
un sistema de una orientaci6n a otra puede llegar a tener un
costo demasiado alto en términos de tiempos de desarrollo,
performance y robustez.
La eleccion correcta del sistema para construir un sitio web
depende mucho del problema que queramos atacar.
Si el problema es muy acotado, con una proyeccién de cambios
muy baja y en el cual un sistema con orientacién particular
satisfaga las necesidades generales, la mejor alternativa podria no
ser un framework.
www.redusers.com 61. CARACTERISTICAS E INSTALACION Bees
Sin embargo, cuando las necesidades del problema se vuelven
muy particulares, con reglas de negocio muy complejas, entonces un
framework es la mejor eleccin.
Cuando nos convencemos de que es conveniente utilizar un
framework para llevar adelante un proyecto, surge la siguiente
pregunta: {qué framework nos conviene clegir?
PHP ofrece muchos frameworks, algunos de los cuales se
encuentran desde hace mucho tiempo en el mercado, mientras que
otros son mas recientes. En la Tabla 2 podemos ver algunos de los
mas reconocidos
La aaa Lama
LAL)
Pere mA Berea ral
Laravel Junio 2011 Esel framework PHP mas _https:/laravel.com
utlizado del momento. Su
filosofia es crear codigo
simple y elegante.
‘Symfony Octubre 2005 Este framework puede http;//symfony.com
ser utlizado para crear
proyectos web y como un
conjunto de componentes
reutiizables; de hecho,
Laravel reutiliza muchos
componentes de Symfony.
Zend | “Marzo ‘2008 iene una implementacion | nttpsi/framework.zend.
com
orientada 100% a la
Programacion orientada a
objetos.
Codelgniter Febrero 2006 Esta compuesto por unkit —_https://codeigniter.com
de herramientas simples
y elegantes para crear
aplicaciones web.
Phalcon Noviembre 2012 | Es conocido por funcionar _https://phalconphp.com/
como una extension en es/
Zephir/C, de manera tal
que el couigu gerier ado es
compilado.
I Tabla 2. Los frameworks PHP que permiten crear distintas aplicaciones y sitios web.
6 www.redusers.comees INTRODUCCION A LARAVEL
LARAVEL
Como ya sabemos, existen muchos frameworks PHP disponibles
en el mercado, y Laravel es relativamente nuevo comparado con los
principales que fueron presentados en la Tabla 2. Veamos un poco
acerca de su historia.
Historia de Laravel
En el afio 2011, uno de los frameworks PHP mas populares era
Codelgniter. Sin embargo, muchas funcionalidades fundamentales para
la creaci6n de aplicaciones web, como la autenticacion, no estaban
incorporadas en él, motivo por el cual Taylor Otwell, un programador
web, decidié crear un framework que las incluyera.
En un principio, Laravel no fue creado con el patrén de arquitectura
MVC, y su foco estaba puesto principalmente en resolver problemas
de autenticacion. No obstante, la primera versién incorporaba
funcionalidades que fueron bien recibidas, y de forma rapida, por la
comunidad de desarrolladores.
La segunda version tard menos de seis meses en salir al mercado.
Laravel termin6 de adoptar el patron MVC para su arquitectura e
incorporé el siguiente slogan:
Liberandote del codigo espagueti, Laravel te ayuda a crear
aplicaciones maravillosas usando una sintaxis simple y
expresiva. El desarrollo debe ser una experiencia creativa que
disfrutes, no algo que sea doloroso. Disfruta del aire fresco.
Sistemas basados en Laravel
Es muy importante dedicar tiempo a estudiar bien el problema que debemos resolver y
analizar las herramlentas disponibles en el mercado antes de elegir una para crear nuestra
aplicaci6n. Existen también sistemas basados en Laravel que estén orientados a propésitos
particulares. por ejemplo. Statamic. https://statamic.com. y OctoberCMS. https://
octobercms.com, que son CMS basados en Laravel.
www.redusers.com 71. CARACTERISTICAS E INSTALACION ee
Es de destacar que, a partir de junio de 2015, Laravel comenz6 a
distribuir versiones LTS (Long Term Support).
{Por qué es importante esto? Las versiones LTS estan disefladas
para ser soportadas durante un periodo mas largo de lo normal,
proveen correcci6n de errores durante dos afios. y la aplicacion de
medidas de seguridad durante tres afos. Considerando que hoy en
dia la tecnologia avanza muy rapidamente, es importante contar
con herramientas que garanticen un periodo de continuidad, sobre
todo, teniendo en cuenta la creacion de proyectos que se pueden
desarrollar a mediano a largo plaza
Laravel en la actualidad
EI slogan actual de Laravel es el siguiente:
éAmas el cédigo hermoso? Nosotros también.
Laravel, el framework para los artesanos de la Web.
fe | bape nmntomtom
Vg tee ase rr
Love beautiful code? We do too.
@ Figura 1. Laravel todavia mantiene la idea de construir provectos
con cédigo simple y expresivo.
sredusers.comeg INTRODUCCION A LARAVEL
Algunas de las caracteristicas que podemos destacar de Laravel son
las siguientes:
Posee una buena curva de aprendizaje.
Tiene una documentacion muy completa, simple y gratuita.
Cuenta con una gran comunidad de desarrolladores, https://laravel.io.
Es el proyecto mas popular en github desarrollado con PHP.
Utiliza muchos componentes de Symfony, el cual es el segundo proyecto PHP mas
popular en github.
Brinda un conjunto de servicios y herramientas de infraestructura que facilitan su puesta
en funcionamiento en diferentes entornos, tales como Forge y Homestead.
Ofrece versiones LTS (Long Term Support). Su ultima version LTS, la 5.5, fue lanzada en
agosto de 2018 y tendré actualizaciones de seguridad hasta 2020, lo cual la hace ideal
para llevar a cabo proyectos de amplia longevidad.
Sigue el patron de arquitectura Modelo-Vista-Controlador (MVC).
Provee un poderoso ORM, Eloquent, que esté basado en el patron active record.
Utiliza un sistema de plantillas con un sistema de caché que permite mejorar la
performance de los sitios desarrollados con Laravel.
Frameworks propios
En una primera impresi6n, aprender a utilizar un framework nuevo de un desconocido puede
parecer mas dificil que crear uno con nuestras manos. Sin embargo, hay que considerar
que, al utilizar un framework abierto, contamos con soporte de una comunidad y, en muchos
‘casos, con una buena documentacién, lo cual permite que sea mas sencillo incorporar
Nuevos programadores a nuestro proyecto.
www.redusers.com a)1, CARACTERISTICAS E INSTALACION ea
El ecosistema Laravel
Debido a su popularidad, se crearon muchas herramientas para
facilitar el desarrollo de sistemas con Laravel, entre las cuales podemos
destacar las siguientes:
Homestead Es la maquina virtual oficial utilizada como ambiente de desarrollo
para proyectos Laravel. Brinda todo lo necesario para ejecutar el
framework junto con herramientas iitiles para el desarrollo.
Lumen Es una versién reducida de Laravel pensada para el desarrollo de
servicios web. Al tener ese foco, hace que sea mucho mas rapida
y liviana que la versién tradicional de Laravel.
Laravel Cashier Es una interfaz que puede integrarse a servicios de administracién
de suscripciones, como Stripe y Braintree.
Statamic Es un CMS construido con Laravel.
I Figura 2. El ecosistema de Laravel permite optimizar tiempos y procesos de desarrollo.
20 www.redusers.com