Latte - это полнофункциональный движок шаблонов, который очень прост в использовании и ближе к синтаксису PHP, чем Twig или Smarty. Также очень легко расширяем и добавляем собственные фильтры и функции.
Установите с помощью composer.
composer require latte/latte
Есть несколько основных опций конфигурации, с которых можно начать. Вы можете узнать больше о них в Документации по Latte.
use Latte\Engine as LatteEngine; require 'vendor/autoload.php'; $app = Flight::app(); $app->register('latte', LatteEngine::class, [], function(LatteEngine $latte) use ($app) { // Здесь Latte будет кэшировать ваши шаблоны для ускорения работы // Одна из хороших вещей в Latte заключается в том, что он автоматически обновляет ваш // кэш при внесении изменений в ваши шаблоны! $latte->setTempDirectory(__DIR__ . '/../cache/'); // Скажите Latte, где будет базовый каталог для ваших представлений. // $app->get('flight.views.path') устанавливается в файле config.php // Вы также можете просто сделать что-то вроде `__DIR__ . '/../views/'` $latte->setLoader(new \Latte\Loaders\FileLoader($app->get('flight.views.path'))); });
Вот простой пример файла макета. Этот файл будет использоваться для оформления всех ваших других представлений.
<!-- app/views/layout.latte --> <!doctype html> <html lang="en"> <head> <title>{$title ? $title . ' - '}Мое приложение</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <nav> <!-- ваши элементы навигации здесь --> </nav> </header> <div id="content"> <!-- Вот где волшебство --> {block content}{/block} </div> <div id="footer"> © Авторские права </div> </body> </html>
И теперь у нас есть ваш файл, который будет отображаться внутри этого блока контента:
<!-- app/views/home.latte --> <!-- Это говорит Latte, что этот файл "внутри" файла layout.latte --> {extends layout.latte} <!-- Это содержимое, которое будет отображаться в макете внутри блока контента --> {block content} <h1>Домашняя страница</h1> <p>Добро пожаловать в мое приложение!</p> {/block}
Затем, когда вы будете рендерить это внутри вашей функции или контроллера, вы сделаете что-то вроде этого:
// простой маршрут Flight::route('/', function () { Flight::latte()->render('home.latte', [ 'title' => 'Домашняя страница' ]); }); // или если вы используете контроллер Flight::route('/', [HomeController::class, 'index']); // HomeController.php class HomeController { public function index() { Flight::latte()->render('home.latte', [ 'title' => 'Домашняя страница' ]); } }
Смотрите Документацию по Latte для получения дополнительной информации о том, как использовать Latte в полной мере!