Plates Native PHP Template[Português - Brasil]

Antonio Silva - Sep 14 '23 - - Dev Community

Site oficial da referência do plates


Sobre

O Plates é um sistema de template PHP nativo que é rápido, fácil de usar e fácil de estender. Ele é inspirado no excelente mecanismo de template Twig e se esforça para trazer a funcionalidade moderna da linguagem de template para templates PHP nativos. O Plates foi projetado para desenvolvedores que preferem usar templates nativos de PHP em vez de linguagens de template compiladas, como Twig ou Smarty.

Instalação

Plates está disponível em Packagist e pode ser instalado usando Composer. Isso pode ser feito executando o seguinte comando ou atualizando seu arquivo composer.json.

composer require league/plates
Enter fullscreen mode Exit fullscreen mode
{
    "require": {
        "league/plates": "3.*"
    }
}
Enter fullscreen mode Exit fullscreen mode

Certifique-se de incluir também o arquivo de carregamento automático do Composer no seu projeto:

require 'vendor/autoload.php';
Enter fullscreen mode Exit fullscreen mode

Exemplo simples

Aqui está um exemplo simples de como usar placas. Assumiremos a seguinte estrutura de diretórios:

📦Plates
 ┣ 📂templates
 ┃ ┣ 📜profile.php
 ┃ ┗ 📜template.php
 ┗ 📜index.php
Enter fullscreen mode Exit fullscreen mode

Definir um layout
A função layout () permite definir um modelo de layout que um template implementará. É como ter templates separados de cabeçalho e rodapé em um arquivo.

<?php $this->layout('template') ?>
Enter fullscreen mode Exit fullscreen mode

A função layout () pode ser chamada em qualquer lugar de um template, pois o modelo de layout é realmente renderizado em segundo. Normalmente, ele é colocado na parte superior do arquivo.

Atribuir dados
Para atribuir dados ( variáveis ) a um modelo de layout, passe-os como uma matriz para a função layout (). Esses dados estarão disponíveis como variáveis de escopo local no modelo de layout.

<?php $this->layout('template', ['title' => 'Exemplo Simples']) ?>
Enter fullscreen mode Exit fullscreen mode

O modelo da página

<?php $this->layout('template', ['title' => 'Simple example']) ?>

<h1>Fruta Lista</h1>
<ul>
    <?php foreach( $frutas as $fruta ): ?>
        <li>
            <?=$this->e($fruta)?>
        </li>
    <?php endforeach ?>
</ul>
Enter fullscreen mode Exit fullscreen mode

Acessando o conteúdo
Para acessar o conteúdo do modelo renderizado dentro do layout, use a função section(), passando 'content' como o nome da seção. Isso retornará todo o conteúdo emitido do modelo que não foi definido em uma seção.

O modelo de layout

<html>
    <head>
        <title><?=$this->e($title) ?></title>
    </head>
    <body>
        <?=$this->section('content')?>
    </body>
</html>
Enter fullscreen mode Exit fullscreen mode

Escaping
Escaping é uma forma de filtragem de dados que desinfete a entrada insegura fornecida pelo usuário antes de produzi-la como HTML

<h1>Hello, <?=$this->escape($name)?></h1>

<!-- Usando a função alternativa e abreviada -->
<h1>Hello, <?=$this->e($name)?></h1>
Enter fullscreen mode Exit fullscreen mode

Dentro do seu controlador

<?php

    require 'vendor/autoload.php';

    // Criar uma nova instancia Plates
    $templates = new League\Plates\Engine('templates');

    $frutas = ['Maçã','Banana', 'Melancia', 'laranja', 'Uva'];

    // Renderizar o template
    echo $templates->render('profile', ['fruta' => $frutas]);
Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .