Symfony无法注册捆绑包

时间:2018-05-16 08:59:45

标签: php symfony symfony-3.4

我在symproject/src/MyAppBundle/src/Bundle

中有一个包

此文件夹包含MyAppBundle.php

    <?php

    namespace MyCompany\Action\Provider\MyAppBundle\Bundle;

    use Symfony\Component\HttpKernel\Bundle\Bundle;

    class MyAppBundle extends Bundle
    {
    }

然后我在App/Appkernel.php注册:

 public function registerBundles()
    {
        $bundles = [
            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 Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
            new AppBundle\AppBundle(),
            new MyCompany\Action\Provider\MyAppBundle\Bundle\MyAppbundle(),
        ];

        if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
            $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();

            if ('dev' === $this->getEnvironment()) {
                $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
                $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
            }
        }

        return $bundles;
    }

完成此操作后,该网站根本无法运行。日志说:

  

PHP致命错误:未捕获错误:类   'MyCompany \ Action \ Provider \ MyAppProvider \ Bundle \ MyAppBundle'没有   发现于/var/www/html/symproject/app/AppKernel.php:20\nStack   追踪:\ n#0   /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(494):   AppKernel-&GT; registerBundles()\ n#1   /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(134):   的Symfony \组件\ HttpKernel \内核级&GT; initializeBundles()\ N#2   /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(197):   的Symfony \组件\ HttpKernel \内核级&GT;引导()\ N#3   /var/www/html/symproject/web/app.php(19):   的Symfony \组件\ HttpKernel \内核级&GT;手柄(对象(Symfony的\元器件\ HttpFoundation \请求))\ N#4   {main} \ n在/var/www/html/symproject/app/AppKernel.php中投放在线   20

1 个答案:

答案 0 :(得分:0)

您已将捆绑类放到

  

symproject / SRC / MyAppBundle / SRC /捆绑

文件夹,但名称空间为

  

MyCompany的\动作\提供商\ MyAppBundle \捆绑

它应该像命名空间

  

应用\ MyAppBundle \捆绑

并移至文件夹

  

symproject / SRC / MyAppBundle /捆绑

或者您应该更改composer.json文件的自动加载部分以使用不同的类加载。

https://getcomposer.org/doc/01-basic-usage.md#autoloading