Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 在appkernel中找不到FOSUserBundle_Symfony_Fosuserbundle - Fatal编程技术网

Symfony 在appkernel中找不到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

我在Windows上使用symfony,并尝试按照官方文档中的描述配置FOSUserBundle

尝试更新架构时出现以下错误:

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供您参考。。。但它并没有改变:(我有另一个项目,它运行良好,没有这个问题…我将修改它。。。