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

时间:2019-10-14 16:36:20

标签: php symfony twig

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

  

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

     

用户已弃用:“ templating.locator” 服务自Symfony 4.3起已弃用,并将在5.0中删除。

     

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

     

不建议使用用户:“ templating.name_parser” 服务自Symfony 4.3起已弃用,并将在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次:“ framework.templating” 配置自Symfony 4.3起不推荐使用。改为配置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。

     

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

     

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

     

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

     

“ templating.locator” 服务自Symfony 4.3起已弃用,并将在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。

1 个答案:

答案 0 :(得分:8)

这是由于不赞成使用模板组件,请参见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

这应删除所有弃用警告。

如果您遇到此错误

  

无法自动装配服务“ ...”:方法“ __construct()”的参数“ $ templating”引用接口“ 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