当我尝试简单地使用HttpKernel组件时出现致命错误。
Fatal error: Class 'Symfony\Component\Config\FileLocator' not found in /.../vendor/symfony/http-kernel/Config/FileLocator.php on line 23
所有软件包都已通过composer 1.8.x安装 设置极简
PHP 5.6
symfony/dependency-injection v3.4.27 Symfony DependencyInjection Component
symfony/event-dispatcher v3.4.27 Symfony EventDispatcher Component
symfony/http-foundation v3.4.27 Symfony HttpFoundation Component
symfony/http-kernel v3.4.27 Symfony HttpKernel Component
symfony/process v3.4.27 Symfony Process Component
symfony/yaml v3.4.27 Symfony Yaml Component
我不想安装所有symfony / symfony软件包。
事实是symfony / config是“ require-dev”依赖项,似乎未安装。
我通常理解的是,require-dev安装通常是在您仅运行composer install|update
时安装的。
显然不是...
按照下面的代码
use Symfony\Component\HttpKernel\Kernel as SymfonyKernel;
use Symfony\Component\HttpKernel\Config\FileLocator;
class MyKernel extends SymfonyKernel {
public function boot() {
// ...
$this->iamOnError();
// ...
}
public function iamOnError() {
// @see SymfonyKernel::getContainerLoader
$locator = new FileLocator($this);
}
}
use App\MyKernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
$kernel = new MyKernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
我的解决方案是在composer.json根目录中添加“ symfony / config”。这很奇怪。
所以我的问题是为什么我遇到此错误(我知道未安装symfony / config),或者为什么symfony / config在composer.json中不是symfony / http-kernel组件的“要求”。 / p>