Introducción a Laravel 5 - Un Framework para Artesanos Web

Post on 13-Apr-2017

833 views 0 download

Transcript of Introducción a Laravel 5 - Un Framework para Artesanos Web

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