Este documento presenta una introducción a Laravel, un popular framework PHP de código abierto para el desarrollo rápido de aplicaciones web. Explica qué es Laravel, sus características, ventajas y filosofía. También cubre conceptos fundamentales como MVC, Eloquent ORM, migraciones, seeders, controladores, rutas y vistas. Finalmente, describe los pasos para configurar un entorno de desarrollo local con Laravel.
1. Desarrollo Rápido de Apps Web con Laravel
/ jorlive
@jlinformatico
#DevHangout
Laravel for Dummies
2. Mi Perfil
Jorge Antonio Linares Vera
Desarrolador Backend
Laravel & Ruby On Rails en Noveltie
● Desarrollador de la
plataforma www.linvermet.com
● CEO redaventura.com (startup)
● Director de I+D Comunidad Tacna Valley
● Fundador de la Comunidad de Software
Libre BasadrinuX - Tacna
3. Motivación
●Desarrollar con buenas prácticas en PHP y
con el patrón MVC.
● Agilizar el desarrollo de proyectos web con el
framework laravel 4.
4. Agenda
●Qué es Laravel?
● Fundamentos Laravel
●Mi primer ciclo MVC
●Desarrollando mi App Laravel
8. Introducción
● Laravel, es el framework PHP de código abierto de mayor
aceptación actualmente para construir aplicaciones web
de forma expresiva y elegante por su simplicidad en la
sintaxis, su elegancia en la escritura, su motor de plantillas
incorporado, la potencia de composer y de artisan para su
manejo y los complementos con los que cuenta.
9. Filosofía
● La programación no tiene que ser aburrida y repetitiva.
● Busca reducir sintaxis de código.
● Se puede disfrutar lo que se hace sin eliminar
funcionalidades en nuestras aplicaciones o sacrificar
otras cosas.
● Enfocado enormemente a reutilizar conocimiento.
10. Filosofía
● Tomar lo mejor de otros Frameworks como Ruby on
Rails, Sinatra, ASP .NET MVC y por supuesto Symfony.
● Adecuado para aplicaciones de cualquier tamaño.
● Enfocada en patrones de desarrollo para influenciar
buenas prácticas.
11. Por qué Laravel?
●Una Comunidad activa que va creciendo.
●Desarrollo activo que garantiza corrección de
problemas de seguridad, mejoras, etc.
●Buena Documentación y bien explicado.
12. Características
● Va por la versión 4 publicada en Mayo del 2013
(actualmente en la versión 4.2).
● Creado en 2011 por Taylor Otwell -
https://twitter.com/taylorotwell
● Publicado bajo la licencia open source MIT -
http://opensource.org/licenses/MIT
● Está inspirado en Ruby on Rails y Symfony, de quien
posee muchas dependencias.
● Está diseñado para desarrollar bajo el patrón MVC.
● Autentificación fácil de implementar.
● Muchos components de Symfony
13. Artisan
Cliente de consola que nos permite ejecutar comandos
propios del framework.
● Comandos básicos para artisan:
http://cheats.jesse-obrien.ca/
14. Composer
Composer el nuevo gestor de paquetes y de dependencias
de PHP. Esto quiere decir que Composer va a descargar de
sus repositorios todas las librerías y las dependencias con
las versiones requeridas que el proyecto necesite y
manejarlas en un solo lugar de manera ordenada.
Obtenerlo desde:
https://getcomposer.org/
15. Eloquent ORM (Object-Relational Mapping)
● Posee un sistema de mapeo de datos relacional llamado
Eloquent ORM, que nos permite interactuar con nuestra
base de datos como si cada tabla fuera un Modelo,
respetando más fielmente la división MVC.
16. Sistema de Plantillas Blade
● Utiliza un sistema de procesamiento de plantillas
llamado Blade, el cual hace uso de la cache para darle
mayor velocidad.
17. Fuentes
Libros:
● Laravel: Code Bright - https://leanpub.com/codebright
● Getting Started with Laravel 4
● Laravel: From Apprentice To Artisan -
https://leanpub.com/laravel
● Laravel Testing Decoded -
https://leanpub.com/laravel-testing-decoded
Web:
● Documentación Oficial: http://laravel.com/docs
18. Lo que necesitas saber
Para comenzar a emprender un proyecto web,
requieres de conceptos básicos:
● Por qué trabajar con Frameworks
● Buenas prácticas de desarrollo
●Desarrollar con Patrón MVC
● PHP 5 y POO
● GIT / github
● Servidores Web
● Comandos básicos en Gnu/Linux
●Otros Lenguajes y Frameworks.
19. Framework
● Framework es un marco de trabajo (un esqueleto, un
patrón) para el desarrollo y/o la implementación de
una aplicación.
22. CMS en Laravel
En Desarrollo:
● PongoCMS v2 http://pongocms.com
● October CMS http://octobercms.com/
● Larapress: https://github.com/larapress-cms/larapress
● Coanda: https://github.com/CoandaCMS/coanda-core
● PyroCMS v3 https://www.pyrocms.com/
● Platform (Release Candidate)
https://cartalyst.com/manual/platform
23. Patrón arquitectónico MVC
● Framework es un marco de trabajo (un esqueleto, un
patrón) para el desarrollo y/o la implementación de
una aplicación.
24. Programación Orientada a Objetos
● La POO es un paradigma de programación (o técnica
de programación) que utiliza objetos e interacciones
en el diseño de un sistema.
25. Sistema de Control de Versiones
● Llevar la gestión de los diversos cambios que se
realizan sobre el código de un proyecto de desarrollo
de software.
● Quieres profundizar en Git: http://git-scm.com/doc
● Quieres practicar: https://try.github.io/
26. Lo que debes hacer
● Plantéate un proyecto personal, forma un
equipo y ten mucha proactividad.
● Es importante configurar tu entorno de
desarrollo.
● Es importante desarrollar de manera ágil
● Escoger las tecnologías más cómodas y
productivas acorde a tu forma de trabajo
(editores de código, IDEs, programador de
tareas, etc).
● Es importante utilizar la terminal.
27. Elige una Distribución Gnu/Linux
Que se adapte a tus necesidades:
LinuxMint DE
Elementary OS
Trisquel
Fedora
Debian
ArchLinux
CentOS
28. Configura tu servidor web
● Laravel necesita un servidor web. Ya sea
cualquiera de los que usa la comunidad como
Apache o Nginx.
● Una opción puede ser XAMPP ya sea para
Gnu/Linux (GLAMP) o Windows (WAMP), y
MAMP para usuarios Mac.
29. Un Gestor de Base de Datos
● Laravel viene por defecto SQLite
● También trabajo con MySql (recomiendo
utilizar MariaDB para temas académicos).
● PostgreSQL
●MongoDB
● Redis
30. Instala PHP 5.3 o superior
● Laravel requiere el lenguaje de programación
PHP. Teniendo en cuenta que Laravel usa
algunas características modernas del lenguaje,
también necesitarás la versión 5.3.7 o superior.
● Puedes saber que versión tienes escribiendo
en la terminal php -v o usando el método
phpinfo().
31. Instalar Composer
●Desde la versión 4 de Laravel, la creación de
un proyecto nuevo se maneja con Composer.
● En una distribución basada en debian.
$ sudo apt-get install curl
● Ejecutar comando para instalar composer (considerar
activar openssl en php.ini):
curl -sS https://getcomposer.org/installer | php
32. Instalar Laravel 4
Desde nuestra terminal accedemos al
directorio de nuestro servidor web (ej: cd
/var/www/proyectoslaravel) y ejecutamos la
linea de comando:
$ composer create-project laravel/laravel
devacademy-laravel –prefer-dist
Vamos a instalar sus dependencias:
$ composer install --dev
33. Instalar Laravel 4
Debes darle permisos de escritura a la carpeta
/app/storage:
$ sudo chmod -R 777 app/storage
Debemos correr nuestro servidor web o del navegador:
localhost/proyectoslaravel/devacademy-laravel/public
óp
hp artisan serve
localhost:8000
34. Configurando el entorno local
● Asegúrate de instalar las dependencias.
● Vamos a generar nuestra clave secreta de la
aplicación para darle seguridad a nuestra app y
al sistema de autentificación de laravel.
php artisan key:generate
● Esta clave se encuentra en app/config/app.php
38. Configurar la base de datos
● app/config/database.php
● Viene por defecto SQLite
● Soporte para MariaDB, PostgreSQL,MongoDB
39. Migraciones
Son un número de scripts PHP que son usados para cambiar
la estructura y/o contenido de tu base de datos.
$ php artisan migrate:make create_users
app/database/migrations
Contamos con 2 métodos
up() y down()
$ php artisan migrate:install
40. Seeds
● Poblar la base de datos.
●Creamos un archivo en el directorio
app/database/seeds
●Creamos el archivo UserTableSeeder.php
● Insertamos código
●Configuramos DatabaseSeeder.php
● Ejecutamos el script de artisan:
php artisan db:seed
●
41. Eloquent ORM
● Todos los modelos de nuestra app extenderán
de la clase padre Eloquent.
● Especifican a que tabla real de la base de
datos afectarán.
● Las relaciones entre objetos creadas, estarán
presentes en dichos modelos.
42. Creación de Modelos
● app/models
● Todos los modelos deben extender la clase
Eloquent.
● Usuario.php
<?php
class Usuario extends Eloquent {
protected $table = 'usuarios';
}
43. Pensando en CRUD
●Create - Crear una nueva fila
●Read - Leer filas existentes
●Update - Actualizar filas existentes
●Delete - Borrar filas existentes
44. Relaciones Eloquent
Relaciones entre modelos:
●One to one - belongsTo
●One to Many - hasmany
● Many to Many (tabla pivote) - belongsToMany