View

View

Sistema de views com suporte a layouts e extração automática de variáveis.

Uso Básico

// app/views/pagina.php
<h1><?= e($title) ?></h1>
<p>Bem-vindo, <?= e($nome) ?>!</p>

// Controller
view('pagina', ['title' => 'Home', 'nome' => 'João']);

Com Layout

O conteúdo da view é renderizado primeiro e fica disponível como $content no layout:

// Controller
view('pagina', ['title' => 'Home', 'nome' => 'João'], 'layouts/app');

// app/views/layouts/app.php
<!DOCTYPE html>
<html>
<head><title><?= e($title) ?></title></head>
<body>
    <?= $content ?>
</body>
</html>

Como Funciona

O helper view() usa extract($data) para disponibilizar as variáveis no escopo da view. Com layout:

  1. Inicia buffer de saída (ob_start())
  2. Extrai $data e inclui a view
  3. Captura o buffer em $content
  4. Extrai $data novamente no layout (layout data keys sobrescrevem $content)
  5. Inclui o layout

Exemplo

// app/views/welcome.php
<h1>Olá, <?= e($nome) ?>!</h1>
<p><?= e($mensagem) ?></p>

// Controller
function welcome() {
    view('welcome', [
        'nome' => 'Maria',
        'mensagem' => 'Bem-vinda ao Blumiga!',
    ], 'layouts/app');
}

Helpers nas Views

<?= e($variavel) ?>           <!-- Escapa HTML -->
<?= asset('css/app.css') ?>   <!-- URL com cache busting -->
<?= csrf_field() ?>           <!-- Campo CSRF -->
<?= flash_get('success') ?>   <!-- Flash message -->
<?= __('welcome') ?>          <!-- Tradução -->