Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony自动服务加载失败,出现“错误”;“类不存在”;_Php_Symfony_Dependency Injection - Fatal编程技术网

Php Symfony自动服务加载失败,出现“错误”;“类不存在”;

Php Symfony自动服务加载失败,出现“错误”;“类不存在”;,php,symfony,dependency-injection,Php,Symfony,Dependency Injection,我正在使用Symfony的依赖项注入组件(单机版,不在Symfony应用程序中)尝试新的自动服务加载,版本v3.3.13 如果我手动定义服务,则该类将正确加载: # services.yml myasset: class: Mysite\Asset\Asset # in a PHP file $container->get('myasset'); # works 如果我设置自动加载,它将失败,并显示错误消息: ReflectionException:1070行的/var/www

我正在使用Symfony的依赖项注入组件(单机版,不在Symfony应用程序中)尝试新的自动服务加载,版本
v3.3.13

如果我手动定义服务,则该类将正确加载:

# services.yml
myasset:
    class: Mysite\Asset\Asset

# in a PHP file
$container->get('myasset'); # works
如果我设置自动加载,它将失败,并显示错误消息: ReflectionException:1070行的/var/www/vendor/symfony/dependency injection/ContainerBuilder.php中不存在类


失败的原因是找到了类并创建了服务定义,但对于自动加载的服务,定义上的
class
属性为
null

我的DIC配置看起来像:

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(__DIR__));
$loader->load(__DIR__ . '/../config/services.yml');
缺少的行是
$container->compile()

工作定义

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(__DIR__));
$loader->load(__DIR__ . '/../config/services.yml');
$container->compile();

请接受你自己的答案。:)你在同一分钟提出并回答了你的问题。。非常suspicious@Akintunde是-我在“回答你自己的问题”框中打了勾。在我写完问题并找到答案后,如果不这样做,那将是一种浪费publish@Akintunde在你提出指控之前,请定义“非常可疑”的内容。你使用的是常规的Symfony框架吗?通常不需要编译行。
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(__DIR__));
$loader->load(__DIR__ . '/../config/services.yml');
$container->compile();