gpt4 book ai didi

php - 如何在不使用静态方法的情况下创建自定义 Twig 函数类?

转载 作者:可可西里 更新时间:2023-11-01 13:37:01 25 4
gpt4 key购买 nike

我可以像这样为我的项目创建一个 Twig 扩展

class Functions extends Twig_Extension{
public function getName(){return 'foobar';}

public function getFunctions() {
return array(
'loremipsum' => new \Twig_SimpleFunction('asset', 'Functions::loremipsum')
);

public static function loremipsum($foo) {
return $foo;
}
}

这行得通,但我想使用构造函数来注入(inject)一些我在某些函数中需要的数据。

Twig_SimpleFunction 中简单地使用 'asset' 将导致 PHP 尝试执行函数 loremipsum()

最佳答案

public function getFunctions() {
return array(
'foo' => new Twig_Function_Method($this, 'bar');
);
}

public function bar($baz) {
return $this->foo . $baz;
}

查看扩展 Twig_Function 的所有不同类,以了解指定模板函数的所有不同方式。

对于较新的 Twig_SimpleFunction,您似乎可以传递任何类型的 callable作为构造函数的第二个参数:

new Twig_SimpleFunction('foo', array($this, 'bar'))

关于php - 如何在不使用静态方法的情况下创建自定义 Twig 函数类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com