В PHP у меня есть:
protected function registerTwigFunctions()
{
return [
'count_VKcomments' => 'countVKCommentsFunction'
];
}
public function countVKCommentsFunction($context, $pdo) {
$url = $context['url'];
$sql = "SELECT id, COUNT(*) FROM level_1 WHERE url = ?";
$count = $pdo->prepare($sql)->execute([$url])->fetchColumn();
return $count;
}
В Twig у меня есть:
{% set url = global.request.uri %}
{{ count_VKcomments({ 'url': url }) }
Но это работает, только если я удаляю аргумент $pdo
из countVKCommentsFunction
, в противном случае некоторыевременный файл жалуется на то, что от Twig передается слишком мало аргументов.Но мне нужно включить этот аргумент $pdo
, чтобы избежать дублирования соединения с базой данных, которое уже определено как $pdo
в другой функции.В то же время я не понимаю, как правильно вызывать countVKCommentsFunction
при условии, что ему нужно $pdo
в качестве аргумента.