Views

Uma View é uma página inteira ou um fragmento de página — como um cabeçalho, rodapé ou barra lateral — e pode ser livremente aninhada para formar layouts hierárquicos.

Criando Views

Para entender, você pode seguir o exemplo abaixo, criando 3 arquivos:

system/views/blog/header.php:

<header> <h1>Meu Blog</h1> </header>

system/views/blog/header.php:

<footer> <p>© <?=gmdate('Y')?> Meu Blog</p> </footer>

system/views/blog/index.php:

<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>My Blog</title> <link rel="stylesheet" type="text/css" href="blog.css" /> </head> <body> <?php View::render('blog.header'); ?> <main> <h2><?=$title?></h2> <p><?=$contentes?></p> </main> <?php View::render('blog.footer'); ?> </body> </html>

Em seguida, no controlador, na função ou no bloco de código, chame o método View::render() assim:

$app->action('GET', '/blog', function ($app, $params) { $entries = [ 'title' => 'My Blog', 'contentes' => 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.', ]; View::render('blog.index', $entries); });

É importante observar que a View só é renderizada após o processamento da rota ou se ocorrer uma exceção ou erro grave. Portanto, dentro de um closure, função ou método de controlador, você pode usar funções para controlar o cabeçalho sem se preocupar com erros, e pode defini-las em qualquer ordem, por exemplo:

$app->action('GET', '/foo', function ($app, $params) { View::render('bar.baz'); header('Pragma: public'); setcookie('meucookie', time()); });

Compartilhar variáveis entre Views

Com o método View::share(), você pode compartilhar um valor que será acessível pela mesma variável em diferentes Views, por exemplo:

$app->action('GET', '/blog', function ($app, $params) { View::data('year', gmdate('Y')); View::data('hello', 'Hi!'); View::render('foo'); View::render('bar'); });

system/views/foo.php:

<section> <h2>Foo view</h2> <p><?=$year?> - <?=$hello?></p> </section>

system/views/bar.php:

<section> <h2>Bar view</h2> <p><?=$year?> - <?=$hello?></p> </section> <?php View::render('baz'); ?>

system/views/baz.php:

<section> <h2>Baz view</h2> <p><?=$year?> - <?=$hello?></p> </section>
Página inicial
Apoie com uma estrela no GitHub