Laravel 5.1Framework para artesanos web
¿Qué es Laravel?• Laravel es un framework MVC para PHP desarrollado por Taylor
Otwell (@taylorotwell).
• Su objetivo es reducir el tiempo de desarrollo eliminando las tareas tediosas y facilitando una sintaxis clara y concisa.
¿Por qué Laravel?• Sintaxis expresiva• Limpio (Con poco código se hace mucho)• Curva de aprendizaje baja (Simple)• Aprovecha al máximo las últimas características de PHP• Integrado con Composer• Integrado con Git
Comenzando con Laravel• Instalación
Se puede instalar con composer y laravel installercomposer global require "laravel/installer=~1.1" laravel new blog
Se puede instalar directamente usando composercomposer create-project laravel/laravel --prefer-dist
• Configuración Básica• En config/app.php tenemos toda la configuración básica de la app• Para realizar configuraciones locales utilizamos el archivo .env
Componentes Básicos• Rutas• Controladores• Vistas• Modelo• ORM (Eloquent)• Query Builder (Fluent)• Migraciones• Seeders
• Artisan (CLI)
Rutas• Utilizamos el archivo app/Http/routes.php
• Definimos todas las rutas que va a tener nuestra aplicación
• Podemos elegir el verbo con el cual va a responder la ruta.
• En proyectos simples, podemos usar Closures para implementar las respuestas de las rutas.
Definiciones Básicas// Un solo verbo
Route::get('/', function () { return 'Hello World';});
Route::post('foo/bar', function () { return 'Hello World';});
Route::put('foo/bar', function () { //});
Route::delete('foo/bar', function () { //});
// Con varios verbos
Route::match(['get', 'post'], '/', function () { return 'Hello World';});
// Con parámetros requeridos
Route::get('user/{id}', function ($id) { return 'User '.$id;});
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { //});
Controladores• En vez de definir la lógica de cada ruta en routes.php, se pueden
utilizar clases que extiendan de la clase Controller.
• Los controladores pueden agrupar las solicitudes HTTP relacionadas y manejarlas dentro de la clase.
Controladores Básicos Route::get('user/{id}', 'UserController@showProfile');
Controladores para RESTFul Route::resource('photo', 'PhotoController');
Verb Path Action Route Name
GET /photo index photo.index
GET /photo/create create photo.create
POST /photo store photo.store
GET /photo/{photo} show photo.show
GET /photo/{photo}/edit edit photo.edit
PUT/PATCH /photo/{photo} update photo.update
DELETE /photo/{photo} destroy photo.destroy
Controladores Implícitos Route::controller('users', 'UserController');
VistasLaravel incluye un sistema de plantillas llamado Blade.
Este sistema permite:• Realizar herencia de plantillas.• Incluir secciones.• Sobrescribir secciones.• Escribir estructuras de PHP de forma resumida aunque nos permite
escribir instrucciones de PHP normales
Definiendo un Layout
Herencia de Plantillas
Incluir Secciones
Mostrar datos
Escribir estructuras de PHP resumidas
ORM Eloquent• El ORM, llamado Eloquent, incluido en Laravel provee una
implementación elegante y sencilla de ActiveRecord (registro activo) para trabajar con la base de datos.• Cada entidad de la base de datos tiene un "Modelo" asociado, el cual
se utiliza para interactuar con esa tabla.
$count = App\Flight::where('active', 1)->count();
$max = App\Flight::where('active', 1)->max('price');
//Recupera por id$flight = App\Flight::find(1);
// Recupera el primer registro que coincide con el filtro$flight = App\Flight::where('active', 1)->first();
//Guarda un nuevo Registro$flight = new Flight;
$flight->name = $request->name;
$flight->save();
Query Builder - Fluent• Laravel nos provee un Database Query Builder, el cual nos permite
crear y ejecutar consultas en la base de datos. Esto puede ser usado para ejecutar la mayoría de las operaciones habituales y trabaja con los sistemas de base de datos soportados por Laravel • A diferencia de el ORM, utiliza StdClass para representar los objetos.
$users = DB::table('users')->get();
$user = DB::table('users')->where('name', 'John')->first();
$email = DB::table('users')->where('name', 'John')->value('email');
Migraciones• Las migraciones son como un control de versiones para nuestra base
de datos.• Nos permite fácilmente modificar y compartir el esquema de la base
de datos de nuestro proyecto, especialmente útil para trabajar en equipos.
Seeders• Laravel incluye un método simple para llenar nuestra base de datos
con datos de prueba usando clases Seed.• Las clases Seed pueden tener el nombre que querramos, pero por
convención nos conviene utilizar la forma UserTableSeeder.• Por defecto, el proyecto cuenta con la clase DatabaseSeeder, donde
podemos hacer llamadas a las diferentes clases Seeder que vamos creando.
Artisan (CLI)• Es una Command Line Interface extensible que permite realizar
fácilmente operaciones habituales en el Framework, como la creación de Controllers, Modelos o ejecutar migraciones y seeding.
• Podemos armar nuestros propios comandos, extendiendo la clase Command.
Herramientas• Laravel.com• Laracasts.com• Styde.net• Laraveles.com• Laravel-news.com
Gracias!
Martin Guadalupe Facundo Goñi
Buscanos en Coffeedevs.com
@coffeedevsfb.com/coffeedevs