pleased to meet you, laravel

43

Upload: rolando-caldas

Post on 14-Apr-2017

163 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Pleased to meet you, Laravel
Page 2: Pleased to meet you, Laravel

Meetups

@SergioCarracedoRoi Scroll CTODisfrutando del desarrollo web desde 1998.

@rolando_caldashttps://

rolandocaldas.com

Page 3: Pleased to meet you, Laravel

Pleased to meet you, Laravel

Meetups

Software libre bajo licencia MIT, desarrollado por Taylor OtwellVersión actual 5.2Basado en ComposerEspecificaciones PSR-2 y PSR-4Utiliza muchos componentes externos, especialmente de SymfonyORM: EloquentBlade como sistema de procesamiento de plantillasMiddlewares!

Page 4: Pleased to meet you, Laravel

Laravel - The PHP Framework for Web Artisians

Meetups

PHP >= 5.5.9OpenSSL PHP ExtensionPDO PHP ExtensionMbstring PHP ExtensionTokenizer PHP ExtensionZIP PHP ExtensionXML PHP Extension

Page 5: Pleased to meet you, Laravel

Instalando Laravel y creando el primer proyecto

Meetups

Composer instalado y funcionado correctamente.Instalamos Laravel globalmente:

composer global require "laravel/installer"Comprobar que esté disponible la ruta a los bin de composer en

nuestro PATH:~/.composer/vendor/bin

Para crear un nuevo proyecto laravel:laravel new phpvigo05

El instalador creará la carpeta phpvigo05 en la ruta dónde se ejecutó el comando.

Posteriormente, habrá que ajustar el DocumentRoot del VirtualHost para nuestro Apache

Page 6: Pleased to meet you, Laravel

Instalando Laravel vía Composer

Meetups

Page 7: Pleased to meet you, Laravel

Creando el proyecto phpvigo05

Meetups

Page 8: Pleased to meet you, Laravel

¡¡Laravel ready!! Contenido de nuestro proyecto

Meetups

Page 9: Pleased to meet you, Laravel

¡¡Laravel ready!! Contenido de nuestro proyecto

Meetups

app: Zona destinada a nuestro código de aplicación. En su interior se encontrarán nuestros modelos, controladores, middlewares, etc.

artisan: Laravel CLI para crear los modelos, migrations, seeders, etc.config: La configuración de la aplicación. Debe contener los valores de

produccióndatabase: La definición de tablas, relaciones, actualizaciones y

alimentación inicial.env: La configuración para tu entorno de desarrollopublic: El contenido web raíz. Sólo tiene favicon, htaccess, index,

robots.txt y web.configresources: Plantillas y cadenas de idiomastorage: Almacenamiento de archivos.vendor: Las dependencias del proyecto (Laravel actúa como

dependencia)

Page 10: Pleased to meet you, Laravel

Editando el DocumentRoot en el VirtualHost del proyecto

Meetups

Page 11: Pleased to meet you, Laravel

Listos para comprobar el resultado

Meetups

GO GO GO!!

Page 12: Pleased to meet you, Laravel

Meetups

Listos para comprobar el resultado

Page 13: Pleased to meet you, Laravel

Meetups

Listos para comprobar el resultado

Page 14: Pleased to meet you, Laravel

Keep Calm: Fix the permissions

Meetups

Laravel tiene que poder escribir en el directorio storage y en todo su contenidochmod -R 777 storage

… listos para probar de nuevo!

Page 15: Pleased to meet you, Laravel

Meetups

Listos para comprobar el resultado

Page 16: Pleased to meet you, Laravel

Configurando conexión DB en entorno de desarrollo

Meetups

Tenemos un MySQL con una base de datos phpvigo05 y el usuario phpvigo con contraseña 4GFd5l$dkae343aAFIeja32!kjdl

Debemos editar el fichero .env (el database.php de config tendrá los valores de producción)

Page 17: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

https://laravel.com/docs/5.2/eloquentAbstracción total de la base de datos.Tú defines la estructura de los modelos y sus relaciones: Eloquent crea

las tablas por tí.Permite relaciones 1:1 - 1:n - n:m Permite el Soft DeleteCon artisan se genera la estructura base de la clase del modelo:

php artisan make:model Model --migrationUna vez definido el modelo y establecido su migration, lo aplicamos

vía artisan:php artisan migrate

Page 18: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Se generan los ficheros:app/Author.php - Modelodatabase/migrations/

2016_06_06_192257_create_authors_table.php - SchemaLa clase creada CreateAuthorsTable tiene dos métodos: up y down

El método up se ejecuta al lanzar el migrate.El método down se ejecuta al realizar un rollback.

Editamos CreateAuthorsTable para definir su estructura.

Page 19: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

authors como el Schema a crear.id como como auto incremental y llave.name como string de 50surname como string de 255photo como string 255bio como textbirthdate como dateslug como string de 255 y llave única.se incorpora automáticamente en formato

timestamps la fecha de creación y última modificación.

Se activan los softDeletes

Page 20: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Al lanzar php artisan migrate se crean las tablas de users, password_resets y authors

Repetimos el make:model para crear un nuevo modelo llamado Book creado los ficheros:app/Book.php - Modelodatabase/migrations/2016_06_06_192747_create_books_table.php -

SchemaEditamos CreateBooksTable para definir su estructura.

Page 21: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

books como el Schema a crear.id como como auto incremental y llave.author_id como integer unsigned y nullable.title como string de 255poster como string 255extract como textslug como string de 255 y llave única.se incorpora automáticamente en formato timestamps la

fecha de creación y última modificación.Se activan los softDeletes.Se establece una clave foránea que relaciona el campo

author_id con el id de la tabla de authors, indicando que el campo author_id pasará a ser nulo cuando se elimine el autor relacionado.

Page 22: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 23: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 24: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 25: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 26: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Los migrate lanzados vía artisan pueden deshacerse utilizando la opción de rollback.

Para saber qué debe deshacer, consulta la tabla migrations.Realmente no hace un rollback, sino que ejecuta los métodos down

correspondientes.

Page 27: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 28: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Para volver a tener la tabla de books hay que realizar un nuevo migration.

Page 29: Pleased to meet you, Laravel

Laravel y su ORM: Eloquent

Meetups

Page 30: Pleased to meet you, Laravel

Activando el sistema de usuarios o Auth

Meetups

Laravel viene preparado para proporcionar una funcionalidad básica de usuarios:Registro de usuarioLogin de usuarioLogout de usuarioRestricción de acceso a usuarios registrados.

Aunque venga preparado, es precioso indicar, explícitamente que lo active.

Page 31: Pleased to meet you, Laravel

Meetups

Novedades en el routes: Nueva ruta home y “alias” auth

Page 32: Pleased to meet you, Laravel

Meetups

Novedades en el routes: Nueva ruta home y “alias” auth

Page 33: Pleased to meet you, Laravel

Las rutas en Laravel

Meetups

En app/Http/routes.php se definen las rutas que a app acepta y el código a ejecutarse.

Por cada route puede ejecutarse una función anónima o un método de un controlador.

Se puede definir un route como un patrón basado en expresiones regulares.

Se diferencia entre route de GET y route de POST pudiendo estar dos definiciones de ruta capturando la misma URL, pero diferenciándose en si va por GET o POST.

Se pueden agrupar varias rutas dentro de un grupo de middlewares.

Page 34: Pleased to meet you, Laravel

Las rutas en Laravel: Ejemplos

Meetups

Page 35: Pleased to meet you, Laravel

El middleware web y auth

Meetups

Un middleware especialmente importante es el conocido como “web”.No se trata de un middleware realmente, sino que es un grupo de

middleware.Entre otras cosas, activa el sistema de sesión, permitiendo así que los

usuarios se puedan loguear.Es importante que todas las rutas que sean accesibles en modo web

(hay otros modos como api) estén dentro de un grupo de rutas que ejecute el middleware web o se perderán los datos de sesión.

El middleware auth obliga a que el usuario esté logueado para poder acceder a las rutas que utilizan este middleware.

Page 36: Pleased to meet you, Laravel

El middleware web

Meetups

Page 37: Pleased to meet you, Laravel

Crear tu propio middleware

Meetups

Pongamos, por ejemplo, que queremos limitar el acceso a unas determinadas rutas, para que sólo sean accesibles al administrador.

Podemos comprobar este punto en cada método de nuestros controladores o dejar que un middleware haga el filtro por nosotros.

Para crear un middleware, se lanza artisan:php artisan make:middleware Admin

Se genera el fichero app/Http/Middleware/Admin.phpEn esa clase, debemos incorporar en el método handle nuestra

restricción.Para determinar si el usuario es admin, simplemente miraremos que el

user id sea 1

Page 38: Pleased to meet you, Laravel

Crear tu propio middleware

Meetups

Page 39: Pleased to meet you, Laravel

Crear tu propio middleware

Meetups

Para poder utilizarlo, debemos activarlo en app/Kernel.php

Ya podemos usarlo en nuestro routes:

Page 40: Pleased to meet you, Laravel

Blade: Procesamiento de plantillas

Meetups

https://laravel.com/docs/5.2/bladePermite extender plantillas (layouts) existentes.Permite utilizar plantillas dentro de otras (subviews)Tiene un sistema de cacheo de plantillas.Sintaxis de estructuras de control parecida a la alternativa de PHP.Uso de {{ $foo }} para imprimir el contenido filtrado (htmlentities)Uso de {{ !! $foo !! }} para imprimir el contenido sin filtrarInyección de servicesNO trabaja en un contexto aislado/separado (como sí hace Twig)

Page 41: Pleased to meet you, Laravel

Recursos y utilidades de interés

Meetups

https://laravel.com/docs/https://laracasts.com/https://github.com/barryvdh/laravel-debugbarhttps://github.com/rcrowe/TwigBridgehttps://github.com/rolando-caldas/laravel-phpvigo05

Page 42: Pleased to meet you, Laravel

Finally Free??

Meetups

Page 43: Pleased to meet you, Laravel

www.opsou.com www.pedrofigueras.com

www.casadellibro.com