无法通过Composer加载类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法通过Composer加载类相关的知识,希望对你有一定的参考价值。
我尝试通过以下方式更新doctrine架构:
$ php bin/console doctrine:schema:update --force
而且我一直在:
PHP Fatal error: Uncaught
SymfonyComponentDebugExceptionClassNotFoundException: Attempted to
load class "FOSUserBundle" from namespace "AppFOSUserBundle".
Kernel.php:
<?php
namespace App;
use SymfonyBundleFrameworkBundleKernelMicroKernelTrait;
use SymfonyComponentConfigLoaderLoaderInterface;
use SymfonyComponentDependencyInjectionContainerBuilder;
use SymfonyComponentHttpKernelKernel as BaseKernel;
use SymfonyComponentRoutingRouteCollectionBuilder;
class Kernel extends BaseKernel
{
use MicroKernelTrait;
const CONFIG_EXTS = '.{php,xml,yaml,yml}';
public function getCacheDir()
{
return $this->getProjectDir().'/var/cache/'.$this->environment;
}
public function getLogDir()
{
return $this->getProjectDir().'/var/log';
}
public function registerBundles()
{
$bundles = array(
new FOSUserBundleFOSUserBundle(),
);
$contents = require $this->getProjectDir().'/config/bundles.php';
foreach ($contents as $class => $envs) {
if (isset($envs['all']) || isset($envs[$this->environment])) {
yield new $class();
}
}
}
composer.json文件:
"autoload": {
"psr-4": {
"App\": "src/",
"FOS\": "vendor/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "test/"
}
FOSUserBundle.php命名空间是:
namespace FOSUserBundle;
并没有工作,但namaspace App工作正常。我试过了:
$ composer dump-autoload
我究竟做错了什么?它仍然在FOS之前使用App命名空间。
答案
您需要添加斜杠。
$bundles = array(
new FOSUserBundleFOSUserBundle(),
);
以上是关于无法通过Composer加载类的主要内容,如果未能解决你的问题,请参考以下文章
自定义包的类不会使用composer autoloader自动加载
我应该在哪里编写代码以便 Composer 可以自动加载我的 PHP 类?
使用 Composer 和 autoload.php 在 PHPUnit 中自动加载类