IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Blade és un motor de plantilles simple però potent que s'utilitza principal amb el framework de desenvolupament PHP Laravel (tot i que també es pot utilitzar com un sistema standalone és a dir sense Laravel en qualsevol projecte PHP). Blade és basa en un sistema d'herències i seccions per tal de construir plantilles complexes reutilitzant seccions de codi.

Com funciona

El fitxers de plantilla Blade acaben tots amb la extensió .blade.php. Com passa sovint amb els sistemes de plantilles tot i la extensió .PHP principalment el mime type del fitxer de sortida creat per la plantilla serà un fitxer de presentació com txt, (X)HTML, XML, JSON, etc.

De fet l'objectiu del sistema de plantilles és minimitzar l'ús codi PHP a les plantilles de forma que ens puguem centrar en les qüestions de presentació/front-end. Vegem un exemple simple:

 <!-- app/views/example.blade.php -->
 <p><?php echo $result; ?></p>

Amb un sistema blade utilitzaríem:

<!-- app/views/example.blade.php -->
<p>{{ $result }}</p>

El motor de plantilles Blade transforma tot el que es troba entre

 {{ double curly brackets }} 

en un echo.

'''Recursos''':
:*https://laracasts.com/series/laravel-from-scratch/episodes/6

== Exemples ==

=== echo variable if exists ===

La forma més convenient d'imprimir una variable si existeix és:

 {{ $name or 'Default' }}

on Default és el valor que es mostrarà sinó existeix la variable.

=== Estructura de control if ===

 @if (count($records) === 1)
     I have one record!
 @elseif (count($records) > 1)
     I have multiple records!
 @else
     I don't have any records!
 @endif

 @unless (Auth::check())
     You are not signed in.
 @endunless

=== Bucles ===

 @for ($i = 0; $i < 10; $i++)
     The current value is {{ $i }}
 @endfor

 @foreach ($users as $user)
     <p>This is user {{ $user->id }}</p>
 @endforeach

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

 @while (true)
      <p>I'm looping forever.</p>
 @endwhile


=== Incloure subvistes ===

 @include('view.name')

es poden passar dades utilitzant un array

 @include('view.name', ['some' => 'data'])

===Plantilles amb seccions i contingut. Layouts ===

Un exemple de plantilla amb una secció sidebar i un apartat central amb el contingut:

<pre class="brush:html">
<!-- Stored in resources/views/layouts/master.blade.php -->

<html>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show

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

per utilitzar el layout:


@extends('layouts.master')

@section('sidebar')
    @parent

    <p>This is appended to the master sidebar.</p>
@stop

@section('content')
    <p>This is my body content.</p>
@stop

Sobreescriure seccions d'una plantilla

Per sobreescriure una secció sencera utilitzeu:

@extends('list.item.container')

@section('list.item.content')

This is an item of type {{ $item->type }}

@overwrite

Suport per a idiomes

@lang('language.line')

@choice('language.line', 1)

Comentaris

{{-- This comment will not be in the rendered HTML --}}

Extenent Blade

Exemples

Vegeu:

http://laravel-recipes.com/categories/9

Vegeu també

Enllaços externs