Исключение при использовании службы расширения веткиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Исключение при использовании службы расширения ветки

Сообщение Anonymous »

Я пытаюсь добавить функции в структуру twig, используя расширение twig.

это расширение (я не знаю, работает ли оно, потому что у меня не было возможности использовать его из-за проблемы, с которой я столкнулся:

Код: Выделить всё

class CnamtsStyleExtension extends \Twig_Extension {
protected $loader;

public function __construct(FilesystemLoader $loader)
{
$this->loader = $loader;
}

public function getFunctions()
{
return array(
'modal' => new \Twig_SimpleFunction($this, 'getModal', array('is_safe' => array('html')))
);
}

public function getModal($parameters=null) {
$template = htmlspecialchars($this->loader->getSource('component/modal.html.twig'));

return $this->getTemplateCode($template, $parameters===null ? null : json_decode($parameters));
}

protected function getTemplateCode($template, $parameters) {
$html_template = '';

if($parameters !== null) {
foreach ($parameters as $key => $value) {
$html_template = str_replace('{{' .$key. '}}', $value, $template);
}
}

return $html_template;
}

public function getName() {
return 'cnamts_style_extension';
}


Вот мой сервис:

Код: Выделить всё

services:
cnamts.twig.cnamts_style_extension:
class: Cnamts\StyleGuideBundle\Twig\CnamtsStyleExtension
tags:
- { name: twig.extension }
arguments: ["@twig.loader"]
и веточка:

Код: Выделить всё

{% extends "::base.html.twig" %}

{% block body %}
Hello world
{% endblock %}
как видите, моя ветка не использует никаких функций моего расширения. это просто «привет, мир».

Поэтому я очищаю кеш (даже вручную, чтобы быть уверенным) и отправляю маршрут....
У меня есть два исключения:

Исключение номер 1 в моей ветке:

Код: Выделить всё

ContextErrorException: Warning: Illegal offset type in my_project\vendor\twig\twig\lib\Twig\Environment.php line 1167
Исключение номер 2: даже панель веб-инструментов не отображается, и сервер выдает ошибку 500

Код: Выделить всё

Illegal offset type "@WebProfiler/Collector/config.html.twig
но исходно из того же исключения в Environment.php

Я уверен, что оно связано с расширением потому что когда я деактивирую добавленную услугу, ошибок не возникает

Спасибо за помощь;

PS: Я мог бы выполнить отладку и увидеть, что загрузчик не равен нулю или что-то в этом роде (это кажется хорошим)... проблема в моем классе, потому что я пытался загрузить тот же сервис, предоставляя другое расширение класса, и у меня нет проблемы.

Подробнее здесь: https://stackoverflow.com/questions/200 ... ce-is-used
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»