拿铁 是一个功能齐全的模板引擎,非常易于使用,比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的更多信息!