mangoweb / latte-bundle
适用于Symfony的Latte模板引擎
v1.1.0
2021-01-05 15:51 UTC
Requires
- php: ^7.1|^8.0
- latte/latte: ^2.5
- nette/forms: ^3.0
- nette/utils: ^3.0
- symfony/framework-bundle: ^4.1|^5.0
- symfony/http-kernel: ^4.1|^5.0
Requires (Dev)
- phpstan/phpstan: ^0.12
- roave/security-advisories: dev-master
- symfony/security-bundle: ^4.1|^5.0
- symfony/translation: ^4.1|^5.0
This package is auto-updated.
Last update: 2024-09-06 17:42:35 UTC
README
如何安装
- 将其作为标准的symfony包安装
- 然后只需请求
Latte\Engine
服务
Latte
特定的Symfony宏
renderRoute
对给定路由发出请求并打印结果。
规范
{renderRoute <routeName>[, 'routeParams'=>[(<key> => <value>,)...][, 'renderOptions'=>[(<key> => <value>,)...]}
示例
{renderRoute myAwesomeRoute,'routeParams'=>['x' => 5, 'y' => 7],'renderOptions'=>['strategy' => 'inline']}
routePath
打印给定路由的相对URL(不包含方案和主机)。
规范
{routePath <routeName>[,<key> => <value>]...}
<a n:href="<routeName>[,<key> => <value>]...">
示例
{routePath myAwesomeRoute,'x' => 5,'y' => 7}
<a n:href="myAwesomeRoute,'x' => 5,'y' => 7"></a>
routeUrl
打印给定路由的绝对URL(包含方案和主机)。
规范
{routeUrl <routeName>[,<key> => <value>]...}
示例
{routeUrl myAwesomeRoute,'x' => 5,'y' => 7}
relativePath
返回从传递的绝对URL的相对路径。见Symfony文档 - relative_path
规范
{relativePath <absoluteUrl>}
示例
{relativePath 'http://example.com/human.txt'}
absoluteUrl
从传递的相对路径返回绝对URL。
规范
{absoluteUrl <relativePath>}
示例
{absoluteUrl 'human.txt'}
csrfToken
渲染CSRF令牌。如果您想在不创建表单的情况下使用CSRF保护,请使用此函数。
规范
{csrfToken <intention>}
logoutUrl - logoutPath
为给定的防火墙生成绝对/相对的注销URL。如果没有提供密钥,则生成的URL是用户当前登录的防火墙的URL。
规范
{logoutPath [key]}
{logoutUrl [key]}
Symfony过滤器
translate
规范
{="<translation.key>"|translate[:[(<argumentName> => <argumentValue>,)...]][:<domain>][:<locale>]}
{_"<translation.key>"}
domain
- 字符串,可选locale
- 字符串,可选
示例
{="my.awesome.translation.key"|translate:['%name%' => 'Karel','%job%' => 'Metař']} {="my.awesome.translation.key"}
translateChoice
规范
{="<translation.key>"|translateChoice:<count>[:[(<argumentName> => <argumentValue>,)...]][:<domain>][:<locale>]}
count
- int,必需domain
- 字符串,可选locale
- 字符串,可选
示例
{="my.awesome.translation.key"|translateChoice:5:['%name%' => 'Karel','%job%' => 'Metař']}
如何扩展
宏
简单宏
- 类
\Mangoweb\LatteBundle\Macro\SimpleMacro
是macroSet->addMacro()的包装(见https://latte.nette.org/en/#toc-user-defined-macros) - 扩展类并用服务标签
- { name: latte.simple_macro }
标记 - 或者实现
\Mangoweb\LatteBundle\Macro\ISimpleMacroProvider
并用服务标签- { name: latte.simple_macro_provider }
标记
高级宏
- 直接实现
\Latte\IMacro
- 注册服务并用服务标签
- { name: latte.advanced_macro, macro_name: fooBar }
标记
过滤器
过滤器提供者
- 实现
\Mangoweb\LatteBundle\Filter\IFilterProvider
- 用服务标签标记服务:
{name: 'latte.filter_provider'}
提供者
- 创建服务并用
- {name: 'latte.provider', provider_name: fooBar }
标记 - 这样它将在latte运行时通过
$this->global->fooBar
可用