Php Symfony自动服务加载失败,出现“错误”;“类不存在”;
我正在使用Symfony的依赖项注入组件(单机版,不在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
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();