拿铁
拿铁 是一个功能齐全的模板引擎,非常易于使用,比Twig或Smarty更接近于PHP语法。它也非常容易扩展,添加自己的过滤器和函数。
安装
使用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="zh-CN">
<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的更多信息!