laravel blade

35
BLADE LARAVEL'S TEMPLATE ENGINE

Upload: julien-tant

Post on 11-Apr-2017

988 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Laravel Blade

BLADELARAVEL'S TEMPLATE ENGINE

Page 2: Laravel Blade

JULIEN TANTDéveloppeur PHP Freelance - CraftyxPassionné de Laravel

Fondateur de laravel.frOrganisateur des meetups Laravel

Speaker@TantJulien

Page 3: Laravel Blade

BACK FROM CORFOU

Page 4: Laravel Blade

PROJETSVisiter l'îleBosser sur ma présentationMe reposerBronzer

Page 5: Laravel Blade

L'ÎLE EST SUBLIME

Page 6: Laravel Blade

ÉVOLUTION DU BRONZAGEAvant : #FFDFC4

Après : #FFDFC4

Page 7: Laravel Blade

J'AI CHOPPÉ UNE PHARYNGITE

Page 8: Laravel Blade
Page 9: Laravel Blade

LE FRAMEWORKCréé par Taylor OtwellInspiré de nombreux frameworkA Framework For Web Artisans

Page 10: Laravel Blade

L'ECOSYSTÈMEDEVELOPER HAPPINESS FROM DOWNLOAD TO DEPLOY

HomesteadLaravel Framework / LumenForge / EnvoyerPackages : Cashier, Socialite, Spark

Page 11: Laravel Blade
Page 12: Laravel Blade

Moteur de template de LaravelInspiré de Razor, moteur de template ASP.NETConçu pour être rapide, puissant et flexibleLe moteur n'est pas disponible en standalone    -> On peut l'utiliser en dehors du framework

Page 13: Laravel Blade

UTILISATION HABITUELLE DANSLARAVEL

Page 14: Laravel Blade

// dans un contrôleurreturn view('my.template', [ 'hello' => 'world', 'someHtml' => 'I\'m <strong>strong</strong>']);

Page 15: Laravel Blade

Le fichier est my/template/resources/views/ .blade.php1er argument : chemin vers le template2nd argument : variables pour le template

Page 16: Laravel Blade

Semblable à la plupart des moteurs

Bonus

ECHOING

{{ $hello }} // htmlentities

{!! $someHtml !!} // raw

Nous sommes le {{ date('d/m/Y') }}

{{ isset($name) ? $name : 'Julien' }}// =>{{ $name or 'Julien' }}

Page 17: Laravel Blade

Vous pouvez utiliser du PHP

<?= e($hello) ?> // shortcut pour htmlentities<?= $hello ?>

Page 18: Laravel Blade

STRUCTURES

Page 19: Laravel Blade

Le classique if

Et son cousin le unless (if not)

@if($age >= 18) Tu es majeur@elseif($age >= 13) Tu es un ado@else Tu es un enfant@endif

@unless($user->isAdmin()) Vous n'êtes pas administrateur@endunless

Page 20: Laravel Blade

Boucles

Le bonus

@for ($i = 0; $i < 10; $i++) {{ $i }}@endfor

@while (true) <p>Ne tentez pas cela à la maison.</p>@endwhile

@foreach ($users as $user) <p>Utilisateur n°{{ $user->id }}</p>@endforeach

@forelse ($users as $user) <li>{{ $user->name }}</li>@empty <p>Aucun utilisateur</p>@endforelse

Page 21: Laravel Blade

INCLUSION

Page 22: Laravel Blade

Inclure un partial depuis un template

@include('my.second.template')@include('my.second.template', ['var' => 'value'])

Page 23: Laravel Blade

Bonus : les partials de boucle

<h3>Liste de vos contacts :</h3>@each('contacts.card', $contacts, 'contact')@each('contacts.card', $contacts, 'contact', 'contacts.empty')

Page 24: Laravel Blade

DIVERS{{-- Commentaire --}}

@{{ non compilé }}

Page 25: Laravel Blade

Laravel Related

@inject('stats', 'service.stats'){{ $stats->onlineVisitors() }}

@lang('pagination.next')

@can('users.create')Ajouter un utilisateur@endcan

@cannot('users.create')Vous ne pouvez pas ajouter un utilisateur@endcannot

Page 26: Laravel Blade

LAYOUT

Page 27: Laravel Blade
Page 28: Laravel Blade
Page 29: Laravel Blade

Layout (layouts/master.blade.php)

<html> <body> <header> @yield('title') </header>

@section('sidebar') SIDEBAR @show

<div class="container"> @yield('content') </div> </body></html>

Page 30: Laravel Blade

Enfant (any/where/child.blade.php)

@extends('layouts.master')

@section('title', 'Ma super app')

@section('sidebar') @parent <p>Contenu ajouté à la sidebar.</p>@endsection

@section('content') <p>Contenu principal.</p>@endsection

Page 31: Laravel Blade

UNDER THE HOOD

Page 32: Laravel Blade

Compiler les instructions blade en instructions PHP.

Isoler le code blade du code PHPTraiter le code blade

Compilation des instructionsCompilation des commentairesCompilation des echos

Page 33: Laravel Blade

Demo time

ISOLER LE CODE BLADE DU CODE PHP

Page 34: Laravel Blade

MERCI

Page 35: Laravel Blade

@TantJulien - [email protected]

MERCI À VOUS