Symfony 4.3: пользователь устарел: класс Symfony \ Bundle \ TwigBundle \ Loader \ FilesystemLoader устарел с версии 4.3 и будет удален в 5.0… - PullRequest
2 голосов
/ 14 октября 2019

После обновления до Symfony 4.3 я получаю следующие 22 предупреждения об устаревании:

Пользователь устарел: класс Symfony \ Bundle \ TwigBundle \ Loader \ FilesystemLoader устарел с версии 4.3 и будетудалено в 5.0;вместо этого используйте обозначения Twig для шаблонов.

Пользователь устарел: служба "templating.locator" устарела с Symfony 4.3 и будет удалена в 5.0.

Пользователь устарел:Класс Symfony \ Bundle \ FrameworkBundle \ Templating \ Loader \ TemplateLocator устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Пользователь устарел: служба "templating.name_parser" устарела с Symfony 4.3 и будет удалена в 5.0.

Пользователь устарел: Symfony \Класс Bundle \ FrameworkBundle \ Templating \ TemplateNameParser устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Пользователь устарел: использование «шаблонизации» устарело с версии 4.3 и будет удалено в 5.0;вместо этого используйте Twig.

Устаревший пользователь: класс Symfony \ Bridge \ Twig \ TwigEngine устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте \ Twig \ Environment.

Пользователь устарел: интерфейс Symfony \ Bundle \ FrameworkBundle \ Templating \ EngineInterface устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Устаревший пользователь: класс Symfony \ Bundle \ TwigBundle \ TwigEngine устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте \ Twig \ Environment.

2 раза: конфигурация "framework.templating" устарела с Symfony 4.3. Вместо этого настройте раздел "twig" , предоставляемый пакетом Twig.

Включение компонента Templating устарело с версии 4.3 и будет удалено в 5.0;вместо этого используйте Twig.

Служба "templating.cache_warmer.template_paths" устарела с Symfony 4.3 и будет удалена в 5.0.

Symfony \ Bundle \ FrameworkBundle \Класс CacheWarmer \ TemplatePathsCacheWarmer устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Служба "templating.finder" устарела с версии Symfony 4.3 и будет удалена в 5.0.

Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \Класс TemplateFinder устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Интерфейс Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \ TemplateFinderInterface устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Служба "templating.locator" устарела с Symfony 4.3 и будет удалена в 5.0.

Symfony \ Bundle \ FrameworkBundle \ Templating \Класс Loader \ TemplateLocator устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Класс Symfony \ Bundle \ FrameworkBundle \ Templating \ TemplateReference устарел с версии 4.3 и будет удален в 5.0;вместо этого используйте Twig.

Служба "templating.name_parser" устарела с Symfony 4.3 и будет удалена в 5.0.

The Symfony \ Bundle \ FrameworkBundle \ Templating \Класс TemplateNameParser устарел начиная с версии 4.3 и будет удален в 5.0;используйте вместо этого Twig.

1 Ответ

2 голосов
/ 14 октября 2019

Это связано с устареванием шаблонного компонента, см. https://symfony.com/blog/new-in-symfony-4-3-deprecated-the-templating-component-integration

Решение:

  1. Удалить "symfony/templating" из composer.json
  2. Удалитьэто из framework.yaml:
    templating:
        engines:
            - twig
    
  3. Выполнить composer update

Это должно удалить все предупреждения об устаревании.

Если вы получаете эту ошибку

Невозможно автоматически подключить службу "...": аргумент "$ templating" метода "__construct ()" ссылается на интерфейс "Symfony \ Bundle \ FrameworkBundle \ Templating \ EngineInterface", но такой службы не существует. Вы создали класс, который реализует этот интерфейс?

... вы все еще используете старый шаблонизатор в какой-то службе.
Решение: измените зависимость с Symfony\Bundle\FrameworkBundle\Templating\EngineInterface на Twig\Environment:

use Twig\Environment;

private $twig;

public function __construct(Environment $twig)
{
    $this->twig = $twig;
}

См. Также https://github.com/symfony/symfony/issues/31645

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...