Symfony 4.3:不推荐使用的用户:自版本4.3起,不推荐使用Symfony \ Bundle \ TwigBundle \ Loader \ FilesystemLoader类,并将在5.0版中将其删除……

Tho*_*uer 4 php symfony twig

升级到Symfony 4.3之后,我收到以下22个弃用警告:

不推荐使用的用户:自版本4.3起,不推荐使用Symfony \ Bundle \ TwigBundle \ Loader \ FilesystemLoader类,并将在5.0版中将其删除。使用Twig表示法代替模板。

不推荐使用的用户:自Symfony 4.3起不推荐使用“ templating.locator”服务,该服务将在5.0中删除。

不推荐使用的用户:自版本4.3起不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ Loader \ TemplateLocator类,并将在5.0版中将其删除。改用Twig。

不推荐使用的用户:自Symfony 4.3起不推荐使用“ templating.name_parser”服务,该服务将在5.0中删除。

不推荐使用的用户:自版本4.3起,不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ TemplateNameParser类,并将在5.0版中删除该类。改用Twig。

不推荐使用的用户:自4.3版起不推荐使用“模板服务”,该服务将从5.0版中删除;改用Twig。

不推荐使用的用户:自版本4.3起不推荐使用Symfony \ Bridge \ Twig \ TwigEngine类,并将在5.0版中将其删除。使用\ Twig \ Environment代替。

不推荐使用的用户:自版本4.3起不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ EngineInterface接口,并将在5.0版中将其删除;改用Twig。

不推荐使用的用户:自版本4.3起不推荐使用Symfony \ Bundle \ TwigBundle \ TwigEngine类,并将在5.0版中将其删除。使用\ Twig \ Environment代替。

2次:从Symfony 4.3开始不推荐使用“ framework.templating”配置。配置由Twig捆绑包提供的“ twig”部分。

从4.3版开始,不再使用启用模板组件,而在5.0版中将删除该组件。改用Twig。

所述“templating.cache_warmer.template_paths”自的Symfony 4.3服务被使用,将在5.0被移除。

从4.3版开始,不推荐使用Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \ TemplatePathsCacheWarmer类,并将在5.0版中删除它。改用Twig。

从Symfony 4.3开始不推荐使用“ templating.finder”服务,该服务将从5.0中删除。

从版本4.3开始,不推荐使用Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \ TemplateFinder类,并将在5.0版中将其删除。改用Twig。

从4.3版开始,Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \ TemplateFinderInterface接口已弃用,并将在5.0版中删除;改用Twig。

自Symfony 4.3起不推荐使用“ templating.locator”服务,该服务将从5.0中删除。

从版本4.3开始,不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ Loader \ TemplateLocator类,并将在5.0版中将其删除。改用Twig。

从版本4.3开始,不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ TemplateReference类,并将在5.0版中将其删除。改用Twig。

自“ Symfony 4.3 以来,“ templating.name_parser”服务已被弃用,并将在5.0中删除。

从版本4.3开始,不推荐使用Symfony \ Bundle \ FrameworkBundle \ Templating \ TemplateNameParser类,并将在5.0版中将其删除。改用Twig。

Tho*_*uer 5

这是由于不赞成使用模板组件,请参阅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
    
    Run Code Online (Sandbox Code Playgroud)
  3. composer update

这应该删除所有弃用警告。

如果出现此错误

无法自动装配服务“ ...”:方法“ __construct()”的参数“ $ templating”引用接口“ Symfony \ Bundle \ FrameworkBundle \ Templating \ EngineInterface”,但不存在这样的服务。您是否创建了实现此接口的类?

...您仍在某些服务中使用旧模板。
解决方案:将依赖项从更改Symfony\Bundle\FrameworkBundle\Templating\EngineInterfaceTwig\Environment

templating:
    engines:
        - twig
Run Code Online (Sandbox Code Playgroud)

另请参见https://github.com/symfony/symfony/issues/31645

  • @Eugene,fabpot 明确表示“你不应该再将 symfony/templateding 与 Twig 一起使用。”。 (2认同)
  • @Aerendir 是的,这意味着 twig 框架集成。请参阅他在博客文章下的评论:*“我们已经有了一个 PHP 模板引擎(模板组件,它仍然存在且稳定)。我们删除的是与框架的集成,因为它没有维护也没有使用。”* - - Fabien Potencier https://symfony.com/blog/new-in-symfony-4-3-deprecated-the-templatating-component-integration 处理它即可。 (2认同)