[Использование PHP 5.5]
Итак, я пытался создать решение для загрузки функций Twig по мере их добавления в $this->functions
(массивзаполненный функциями, которые я хочу, чтобы Twig расширил)
class Twig
{
private $twig;
private $templatesBaseDir = "../app/views";
private $functions = [
"lipsum" => function ($pcount, $psize) {
return file_get_contents("http://loripsum.net/api/{$pcount}/{$psize}/headers");
}
];
/**
* Sets Twig Environment configs
*/
public function __construct()
{
$this->twig = new \Twig_Environment($this->loadViews(), [
"debug" => true,
// "cache" => "/cache",
"auto_reload" => true,
]);
}
/**
* Returns Twig setup (environment configs + templates path)
*/
public function loadTwig()
{
return $this->twig;
}
private function loadTwigFunctions()
{
foreach ($this->functions as $name => $closure) {
$$name = new \Twig_Function($name, $closure);
$this->twig->addFunction($$name);
}
}
}
Дело в том, что PHP возвращает ошибку для строки "lipsum" => function ($pcount, $psize) {
:
неожиданная 'функция' (T_FUNCTION), ожидая идентификатора (T_STRING)
Я провел несколько тестов с этим подходом в глобальной области видимости, используя массивы и анонимные функции, и он сработал, как и ожидалось, думаю, это некоторая проблема при использовании его с классомсвойства или что-то в этом роде, не уверен.
(Это мой первый вопрос, поэтому дайте мне знать, если потребуется дополнительная информация)