Проблема в том, что, вероятно, ваш myFunction
метод не является статичным. Представьте себе класс:
class Element
{
public static function sayHi()
{
return "Hi!";
}
public function sayHello()
{
return "Hello!";
}
}
Чтобы использовать это в функции Twig, вы регистрируете их следующим образом:
public function getFunctions()
{
$element = new Element();
return [
new TwigFunction('test_function_static', [Element::class, 'sayHi']),
new TwigFunction('test_function_dynamic_on_object', [$element, 'sayHello']),
];
}
Таким образом, вызываемый объект должен придерживаться правил , что означает, что вы можете вызывать нестатическую функцию только для объекта (экземпляра) определенного класса, но не для самого класса.
Если вы добавите
...
new TwigFunction('test_function_dynamic_on_class', [Element::class, 'sayHello']),
...
вы увидите ошибку, которую вы имеете.