Symfony 在appkernel中找不到FOSUserBundle
我在Windows上使用symfony,并尝试按照官方文档中的描述配置FOSUserBundle 尝试更新架构时出现以下错误:Symfony 在appkernel中找不到FOSUserBundle,symfony,fosuserbundle,Symfony,Fosuserbundle,我在Windows上使用symfony,并尝试按照官方文档中的描述配置FOSUserBundle 尝试更新架构时出现以下错误: Class 'FOS\UserBundle\FOSUserBundle' not found in app/AppKernel.php line 20; 已搜索问题并找到此解决方案: 将此添加到autoload.php $loader->registerNamespaces(array( //all the rest 'FOS' => $v
Class 'FOS\UserBundle\FOSUserBundle' not found in app/AppKernel.php line 20;
已搜索问题并找到此解决方案:
将此添加到autoload.php
$loader->registerNamespaces(array(
//all the rest
'FOS' => $vendor_dir . '/bundles',
));
但它返回另一个错误,即
call to undefined method ...\ClassLoader::RegisterNamespace() in ...\autoload.php on line 13
谁能告诉我该怎么办|
这是我的appkernel.php文件:
<?php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new Sad\Bundle\WarehouseBundle\SadWarehouseBundle(),
new FOS\UserBundle\FOSUserBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
}
好的,您的代码似乎没有问题
在开始解决方法之前,让我们尝试通过以下步骤重新安装您的捆绑包:
- 删除添加到autoloader.php的
$loader->registerNamespaces(…)
内容
- 运行
php composer.phar self update
以更新composer
- 从AppKernel.php中删除行
use FOS\UserBundle\FOSUserBundle(),
- 运行
php composer.phar update
更新所有捆绑包
- 清除缓存,运行
php应用程序/控制台缓存:清除
- 再次将行
use FOS\UserBundle\FOSUserBundle(),
添加到AppKernel.php
他们应该这样做。如果您仍然无法使用该捆绑包,并且需要解决方法(我不建议这样做),那么以下是解决方法:
打开app/autoload.php。紧跟在$loader=require\uuuuuu DIR\uuuuu.//vendor/autoload.php
。添加以下内容:
//Loads FOSUserBundle
$loader->add('FOS', __DIR__.'/../vendor/friendsofsymfony/user-bundle/FOS');
同样,这应该可以解决问题,但不是正确的做法。您的捆绑包应该可以正常工作。我也遇到了同样的问题。我发现FOSUserBundle没有正确安装。您应该删除/vendor/friendsofsymfony/目录,然后使用以下命令更新捆绑包:
php composer.phar update friendsofsymfony/user-bundle
这对我有用。我希望它能帮助其他有同样问题的人。在Symfony 3.x
中修复此错误
如果无法执行composer
,并且只能通过FTP
传输文件,则需要更新文件:
vendor/composer
也许
供应商/symfony
(如果版本已更新)
同样的解决方案也适用于此错误
致命错误:类“FOS\JsRoutingBundle\FOSJsRoutingBundle”不是
发现
您使用的是什么symfony版本?我们已经很久没有手动注册名称空间了。您是否使用composer下载了供应商脚本?我使用的是最新版本2.3,也使用composer来下载和安装捆绑包。是否有{YOUR_PROJECT_PATH}\vendor\friendsofsymfony\user bundle\FOS\UserBundle文件夹?是,它就在那里,包含FOSUserBundle.php文件。我很难弄清楚到底发生了什么。您可以编辑您的问题并添加AppKernel.php的内容吗?tnx供您参考。。。但它并没有改变:(我有另一个项目,它运行良好,没有这个问题…我将修改它。。。