nedryse / latte-template-macroset
占位符替换Latte宏提供了一种简单的方法,将变量的内容放入正确的位置。
Requires
- php: >=5.3.1
- latte/latte: ~2.2
- nette/di: ~2.2
Requires (Dev)
- phpunit/phpunit: 4.3.*
This package is not auto-updated.
Last update: 2022-06-28 09:14:25 UTC
README
#nedryse/latte-template-macroset (cc)# Pavel Železný (2bfree), 2014 (pavelzelezny.cz)
要求
Nette Framework 2.2.0 或更高版本
文档
占位符替换Latte宏提供了一种简单的方法将变量的内容放入正确的位置。
宏集提供{template ...}
宏,并使用相同的机制覆盖{_ ...}
宏。这些宏的第一个参数可以包含任何数量的{:placeholders}
字符串,这些字符串将被同名的变量替换。
替换变量从模板中获取,如$template->placeholder
,被局部变量如{var $placeholder}
覆盖,并被宏的参数覆盖,如{template ..., 'placeholder' => 'replacement', ...}
或{template ..., array('placeholder' => 'replacement', ...)}
。替换变量可以包含{:nested_placeholders}
,这些也会被替换。
{_ ...}
宏的功能得到保留。宏的所有参数都未改变地发送给翻译器。翻译器的结果将被用作可以包含{:placeholders}
的模板。利用这个功能,您可以更改给定参数的位置,以提供适当的翻译复数作为宏的第一个参数。
安装
首选安装方式是通过Composer
composer require nedryse/latte-template-macroset:~1.0.0
或手动添加到composer.json
{
"require":{
"nedryse/latte-template-macroset": "~1.0.0"
}
}
设置
将以下代码添加到config.neon
common:
extensions:
latteTemplateMacroSet: Nedryse\Latte\Macros\TemplateMacroSetExtension
用法
最简单的用法如下所示
{template '<strong>{:userName}</strong>', 'userName' => $user->getIdentity()->getId()}
替换变量也可以像以下代码那样通过数组提供
{var $replacements = array('userName' => $user->getIdentity()->getId())}
{template '<strong>{:userName}</strong>', $replacements}
替换变量可以从{var ...}
或从$template
提供,如下所示
{var $userName => $user->getIdentity()->getId()}
{template '<strong>{:userName}</strong>'}
替换可以在以下顺序中覆盖:$template
、{var ...}
、{template ..., replacements}
,如下所示
{var $userName => $user->getIdentity()->getId()}
{template '<strong>{:userName}</strong>', 'userName' => 'test'}
这两个宏也支持过滤器,如下所示
{template '<strong>{:userName}</strong>', 'userName' => 'test'|upper}
替换可以包含{:nested_placeholders}
以用作可定制的模板机制,如下所示
{var $idTpl = '<strong>{:userId}</strong>'}
{var $nameTpl = '{:userName}'}
{var $pairTpl = '<li>{:idTpl} - {:nameTpl}</li>'}
{var $usersTpl = '<ul>{:usersListTpl}</ul>'}
{capture $usersListTpl}
{foreach $users as $userId => $userName}
{template $pairTpl}
{/foreach}
{/capture}
{_'User (%s): {:usersTpl}', count($users)}