Twig 过滤器中未指定的 Twig 扩展方法参数
Twig extension method argument which is not specified in twig filter
此代码来自 symfony Knp-paginator-bundle 并且存在于 Twig Extension class (PaginationExtension.php
) 中。我想知道(只是好奇)render() 方法中的第二个参数:SlidingPagination $pagination
来自哪里,因为这个参数没有在 twig 中提供。有人有想法吗?
/**
* {@inheritDoc}
*/
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('knp_pagination_render', array($this, 'render'), array('is_safe' => array('html'), 'needs_environment' => true))
);
}
/**
* Renders the pagination template
*/
public function render(\Twig_Environment $env, SlidingPagination $pagination, $template = null, array $queryParams = array(), array $viewParams = array())
{
return $env->render(
$template ?: $pagination->getTemplate(),
$this->processor->render($pagination, $queryParams, $viewParams)
);
}
在 Twig 中,扩展名是这样使用的:
{{ knp_pagination_render(projects) }}
实际上SlidingPagination $pagination
来自projects
在树枝调用中:{{ knp_pagination_render(projects) }}
\Twig_Environment $env
被twig插入所有扩展函数
此代码来自 symfony Knp-paginator-bundle 并且存在于 Twig Extension class (PaginationExtension.php
) 中。我想知道(只是好奇)render() 方法中的第二个参数:SlidingPagination $pagination
来自哪里,因为这个参数没有在 twig 中提供。有人有想法吗?
/**
* {@inheritDoc}
*/
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('knp_pagination_render', array($this, 'render'), array('is_safe' => array('html'), 'needs_environment' => true))
);
}
/**
* Renders the pagination template
*/
public function render(\Twig_Environment $env, SlidingPagination $pagination, $template = null, array $queryParams = array(), array $viewParams = array())
{
return $env->render(
$template ?: $pagination->getTemplate(),
$this->processor->render($pagination, $queryParams, $viewParams)
);
}
在 Twig 中,扩展名是这样使用的:
{{ knp_pagination_render(projects) }}
实际上SlidingPagination $pagination
来自projects
在树枝调用中:{{ knp_pagination_render(projects) }}
\Twig_Environment $env
被twig插入所有扩展函数