mangoweb/latte-bundle

适用于Symfony的Latte模板引擎

v1.1.0 2021-01-05 15:51 UTC

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保护,请使用此函数。

Symfony文档 - csrf_token

规范
{csrfToken <intention>}

logoutUrl - logoutPath

为给定的防火墙生成绝对/相对的注销URL。如果没有提供密钥,则生成的URL是用户当前登录的防火墙的URL。

规范
{logoutPath [key]}
{logoutUrl [key]}

Symfony过滤器

translate

Symfony文档 - 模板中的翻译

规范
{="<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

Symfony文档 - 模板中的翻译

规范
{="<translation.key>"|translateChoice:<count>[:[(<argumentName> => <argumentValue>,)...]][:<domain>][:<locale>]}
  • count - int,必需
  • domain - 字符串,可选
  • locale - 字符串,可选
示例
{="my.awesome.translation.key"|translateChoice:5:['%name%' => 'Karel','%job%' => 'Metař']}

如何扩展

简单宏

高级宏

  • 直接实现\Latte\IMacro
  • 注册服务并用服务标签- { name: latte.advanced_macro, macro_name: fooBar }标记

过滤器

过滤器提供者

提供者

  • 创建服务并用- {name: 'latte.provider', provider_name: fooBar }标记
  • 这样它将在latte运行时通过$this->global->fooBar可用