daun / template-engine-latte
ProcessWire 模块,将 Latte 添加到 TemplateEngineFactory
v2.1.0
2023-11-22 16:51 UTC
Requires
- php: >=8.0
- composer/installers: ~1.0
- latte/latte: ^3.0
- wanze/template-engine-factory: ^2.0
This package is auto-updated.
Last update: 2024-09-22 18:33:06 UTC
README
这是一个 ProcessWire 模块,将 Latte 添加到 TemplateEngineFactory。
此模块版本使用 Latte 3,其中定义标签/宏的方式有所变动。如果您需要继续使用 Latte 2,请保持此模块的 ^1.0
主要版本。了解更多关于 迁移到 Latte 3 和 将宏升级为标签 的信息。
需求
- ProcessWire
3.0
或更高版本 - TemplateEngineFactory
2.0
或更高版本 - PHP
8.0
或更高版本 - Composer
安装
在您的 ProcessWire 安装根目录中执行以下命令
composer require daun/template-engine-latte:^2.0
这将在一步中安装 TemplateEngineLatte 和 TemplateEngineFactory 模块。之后,不要忘记在 TemplateEngineFactory 模块的配置中启用 Latte 作为引擎。
ℹ️ 此模块包含测试依赖项。如果您在生产环境中使用
composer install
安装,请确保传递--no-dev
标志以省略自动加载任何不必要的测试依赖项!
配置
该模块提供了以下配置
模板文件后缀
Latte 模板文件的后缀,默认为latte
。默认布局文件
所有视图都将扩展的布局,除非被覆盖。在 Latte 模板中提供 ProcessWire API 变量
API 变量($pages
、$input
、$config
...)在 Latte 中可访问,例如,{$config}
用于配置 API 变量。简化的路径解析
启用类似 Blade 的点符号进行目录遍历。 见下文。自动刷新模板(重新编译)
每当源代码更改时重新编译模板。
简化的路径解析
此选项将启用以下两项功能
- 允许使用类似 Blade 的点符号进行目录遍历。
- 将基本视图目录添加到所有路径前面,消除在子目录中使用无限
../
的需要。
示例
以下两个都将解析为 site/templates/views/partials/navigation.latte
- 正常解析:
{include '../../partials/navigation.latte'}
- 启用简化解析:
{include 'partials.navigation'}
扩展 Latte
可以在模块初始化 Latte 之后扩展 Latte。将方法 TemplateEngineLatte::initLatte
连接到注册自定义标签、过滤器、函数等。
以下是如何使用提供的钩子添加自定义宏和过滤器的示例。
wire()->addHookAfter('TemplateEngineLatte::initLatte', function (HookEvent $event) { /** @var Latte\Engine */ $latte = $event->arguments('latte'); $compiler = $latte->getCompiler(); // Add filter $latte->addFilter('lower', function ($str) { return strtolower($str); }); // Add custom tags via extensions $latte->addExtension(new FooExtension); });
上述钩子可以放在您的
site/init.php
文件中。如果您更喜欢使用模块,请将其放入模块的init()
方法中,并确保模块自动加载。