Blade (programación)

Blade (programación)
Información sobre la plantilla
Concepto:El motor de plantillas Blade es una funcionalidad de Laravel que permite modularizar las vistas de una forma sorprendente, tambien permite usar estructuras de control y variables de PHP directamente en ellas.

Blade, motor de plantillas de Laravel con la idea de que se debe escribir la menor cantidad de código repetido, o sea, modularizar el código en donde mas se pueda, y esto debe aplicarse a los modelos, controladores y demás partes del proyecto.

¿Que es Blade?

templates

Laravel usa unos archivos que se llaman plantillas o templates cuya extensión es .blade.php. Estas plantillas contienen los segmentos de código que se repiten en mas de una vista (página web), las cuales podrían ser el menú, la barra lateral, el footer o pie de página, etc.

Partials

También existen los archivos que se llaman partials, estos archivos son pequeños segmentos de código que suelen ser usados comúnmente en partes del proyecto. En estos es que colocamos el código del footer, el menú, etc. Los cuales por si solos no se podrían mostrar en pantalla, pues son las piezas del rompe cabeza que forman la pagina web que se muestra al visitante. Así para poder unir todos estos archivos o piezas del rompecabezas usamos el motor de plantillas de Laravel llamado BLADE.

Sintaxis de Blade

Variables de PHP

Mediante php se usa el siguiente código

<?php echo $var ?>
<?= $var ?>

NO obstante, con blade el código es mas simple

{{ $carro }}

Estructuras de control

Para cada una de estas estructuras como lo son If, else, elseif, for, foreach, etc., se antepone un @. NO es necesario nada más.Ejemplo:

@foreach($carros as $carro)
    <h2>{{ $carro->marca}}</h2>
 @endforeach

Templates

Estos archivos antes definidos usan la siguiente sentencias para llamar a la vista.

  • @extends('nombre_template'): Esta sentencia nos ayuda a decirle a una vista cual va a ser el template que se va a usar.
  • @yield('nombre'): Esta sentencia permite declarar un futuro section del HTML que se definirá en las vistas que son heredadas y no puede agregarse algun tipo de contenido por defecto, este sólo se usa en archivos que toman el rol de Template .
  • @section('nombre'): Esta sentencia tiene dos usos dependiendo de que queremos declarar, el primero es que nos permite declarar como su nombre lo dice una sección dentro del template que puede tener un contenido por defecto que si no es redefinido en la vista que herede el template entonces aparecerá; el segundo nos permite asignar el contenido en una sección que fue declarada en nuestro template, es decir esta palabra section se usa tanto en el template como en las vistas hijas, una diferencia mas es que si se usa en el template entonces la sección termina con un @show, pero si se usa en una vista hija entonces termina la sección con un @stop.
  • @include('ruta.nombre'): Esta sentencia nos agrega en el lugar donde sea usada un archivo blade.php que contiene un partial o fragmento parcial de HTML, si ese partial se encuentra en la raíz de las vistas no necesita mas que el nombre sin la extensión blade.php, pero si esta dentro de, por ejemplo, la carpeta "views/admin/users/" llamado table.blade.php para poder ser incluido se usaría la ruta junto con el nombre quedando como @include('admin.users.table'), views no se contempla pues es la raíz de las vistas.

Ejemplo

//base.blade.php

<html>
    <body>
        @yield('contenido')
        <footer>
            @yield('footer')
        </footer>
   </body>
 </html>

Vista

@extends('base')

 @section('contenido')
 <h1> Aquí algún contenido para esta vista </h1>
 @endSection

 @section('footer')
 <p> footer para esta vista </p>
 @endSection

Fuente