Php 致命错误:未捕获错误:类';细枝自动装弹机&x27;找不到

Php 致命错误:未捕获错误:类';细枝自动装弹机&x27;找不到,php,twig,fatal-error,templating,templating-engine,Php,Twig,Fatal Error,Templating,Templating Engine,最近,我通过Composer for PHP7.2安装了Twig2.0,在运行代码时,我发现了这些错误 (!)致命错误:未捕获错误:未找到类“Twig_Autoloader” 在第4行的C:\wamp64\www\php twig\example.php中 (!)错误:在第4行的C:\wamp64\www\php Twig\example.php中找不到类“Twig\u Autoloader” 我在GitHub中讨论了这些问题 这是我的PHP代码 <?php require 'vendo

最近,我通过Composer for PHP7.2安装了Twig2.0,在运行代码时,我发现了这些错误

(!)致命错误:未捕获错误:未找到类“Twig_Autoloader” 在第4行的C:\wamp64\www\php twig\example.php中

(!)错误:在第4行的C:\wamp64\www\php Twig\example.php中找不到类“Twig\u Autoloader”

我在GitHub中讨论了这些问题

这是我的PHP代码

<?php

require 'vendor/autoload.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');

$options = array(
    'name' => 'Sumithran',
);

$twig = new Twig_Environment($loader, $options);

Twig_Autoloader在1.21版中被弃用。您使用的是2.0版,因此必须使用:

$loader = new \Twig\Loader\FilesystemLoader('templates');

$options = array(
    'name' => 'Sumithran',
);

$twig = new \Twig\Environment($loader, $options);

更多详细信息参见。

Twig version 2+,介绍了名称空间的使用,现在类结构有点不同

例如,文件系统加载器位于
Twig\Loader\FilesystemLoader
而不是
Twig\u Loader\FilesystemLoader

您还可以使用一次将所有名称空间更改为版本2

Tomas Votruba在本文中更详细地描述了该过程

TLDR;-运行以下命令以无缝升级到命名空间。

composer require rector/rector --dev # make sure you have version 0.4.10+ at least
vendor/bin/rector process src --level twig-underscore-to-namespace
composer require rector/rector --dev # make sure you have version 0.4.10+ at least
vendor/bin/rector process src --level twig-underscore-to-namespace