【发布时间】:2017-06-10 12:23:59
【问题描述】:
我在引导程序(app_dev 和 app)中遇到了这个错误,此时我真的很迷茫:
FatalThrowableError in ContainerBuilder.php line 219: Type error: Argument 1 passed to Symfony\Component\DependencyInjection\ContainerBuilder::addResource() must implement interface Symfony\Component\Config\Resource\ResourceInterface, instance of Symfony\Component\Config\Resource\FileResource given, called in /var/www/sellbytel2/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php on line 279
in ContainerBuilder.php line 219
at ContainerBuilder->addResource(object(FileResource)) in ContainerBuilder.php line 279
at ContainerBuilder->addClassResource(object(ReflectionClass)) in ContainerBuilder.php line 258
at ContainerBuilder->addObjectResource(object(AppKernel)) in Kernel.php line 578
at Kernel->buildContainer() in Kernel.php line 486
at Kernel->initializeContainer() in Kernel.php line 116
at Kernel->boot() in Kernel.php line 165
at Kernel->handle(object(Request)) in app_dev.php line 12
我一直在研究 symfony 代码,发现错误是在启动内核时发生的(new AppKernel('dev', true)),但我不明白为什么会发生这种情况。
为了让事情变得更奇怪,thisi 只发生在我的 staging env 中,在我的 dev env 中工作正常(使用 centos 的流浪者,与 staging 相同)。
我正在使用 Symfony 3.2.9 这里是 app_dev.php 文件的内容
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
/** @var \Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../app/autoload.php';
Debug::enable();
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
【问题讨论】: