unionofrad / li3_twig
Lithium Twig 集成
Requires
- twig/twig: 1.13.1
This package is not auto-updated.
Last update: 2024-09-14 15:12:56 UTC
README
启用 Twig 支持 Lithium PHP 框架。
Composer 安装
composer require unionofrad/li3_twig
"require": {
"unionofrad/li3_twig": "dev-master"
}
用法
配置
- 首先,在您的
bootstrap/libraries.php
文件中添加以下代码以在您的 Lithium 应用程序内部启用库:
Libraries::add('li3_twig', array(
'config' => array(
'register' => array(
'globals' => true, // Makes the view available inside Twig templates throug the `this` and `view` globals.
'magicHelperMethod' => true // Makes lithium helpers available through a magic method. Html_link will call the link method of the Html helper.
),
'extensions' => array('TwigExtensions') // Twig extensions.
)
));
?>
- 其次,确保您的渲染过程设置为渲染新的 Twig 媒体类型
$this->_render['type'] = 'twig';
Router::connect('/foobar', array(
'controller' => 'Pages',
'action' => 'index',
'type' => 'twig',
));
从您的控制器返回数组(就像您通常做的那样),并具有在 Twig 模板中可访问的属性。
稍后在模板中像这样访问您的字段。
Hello {{ name }}
Lithium 辅助函数
请注意,this
是自动添加到环境的引用,并且在其下您可以像在常规 lithium 模板中一样懒加载辅助函数。
{{ this.helper('Form').create }}
{{ this.helper('Form').text('title') }}
{{ this.helper('Form').select('gender', {'m':'male','f':'female'}) }}
{{ this.helper('Form').end }}
为了获得更多的 Twig 和 Lithium 爱护,您可以使用动态的 *_*
,它将自动调用 lithium 辅助函数。上面的表单创建可以翻译如下。
{{ Form_create() }}
{{ Form_text('title') }}
{{ Form_select('gender', {'m':'male','f':'female'}) }}
{{ Form_end() }}
关于 Lithium 辅助函数的说明
如果您重写或创建自己的辅助函数,请确保始终以返回字符串的方式结束您的函数!如果您不想输出任何内容,只需返回一个空字符串。Twig 不喜欢在模板中输出 null
,它通常会抛出错误给您,电子绵羊将统治您的桌面 - 真实的故事(好吧,不是真的…)。
Twig 扩展
库配置中的 extensions
字段定义了一个列表,这些列表将由 Twig 适配器作为 Twig 扩展 处理。如果您想创建自己的扩展,请参阅 Twig 文档。
CLI 命令
我包含了一个 CLI 命令,可以一次性擦除所有 twig 缓存。
Twig 将创建一个表示您的 twig 模板的 php 文件。如果在开发环境中更新了您的模板,该文件将自动刷新。然而,如果在生产模式下,这些 twig 文件不会自动更新以提高性能。检查更新成本高昂,编译模板成本更高。
考虑到 li3 在您的 PATH
变量中,命令可能是这样的: li3 Twig flush
。
请记住,每次您的生产文件更新时都要执行此操作。
感谢
这个库是从 nervetattoo 的 GitHub 存储库中分叉出来的。感谢他通过他的库让我走上正确的道路!感谢 Lithium 框架及其所有贡献者!他们的框架是今天我继续使用 PHP 的唯一原因 :)。