Symfony не может зарегистрировать пакет - PullRequest
0 голосов
/ 16 мая 2018

У меня есть пакет в 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: Uncaught Error: Class «MyCompany \ Action \ Provider \ MyAppProvider \ Bundle \ MyAppBundle» не находится в /var/www/html/symproject/app/AppKernel.php:20\nStack след: \ п # 0 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(494): AppKernel-> registerBundles () \ п # 1 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(134): Symfony \ Component \ HttpKernel \ kernel-> initializeBundles () \ п # 2 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(197): Symfony \ Component \ HttpKernel \ kernel-> загрузки () \ п # 3 /var/www/html/symproject/web/app.php(19): Symfony \ Component \ HttpKernel \ kernel-> ручка (Объект (Symfony \ Component \ HttpFoundation \ Запрос)) \ п # 4 {main} \ n добавлено в /var/www/html/symproject/app/AppKernel.php на линии 20

1 Ответ

0 голосов
/ 16 мая 2018

Вы поместили класс пакета в папку

symproject / src / MyAppBundle / src / Bundle

, но пространство имен равно

MyCompany \ Action \ Provider \ MyAppBundle \ Bundle

Должно быть похоже на пространство имен

App \ MyAppBundle \ Bundle

и перемещено впапка

symproject / src / MyAppBundle / Bundle

Или вам следует изменить раздел автозагрузки вашего файла composer.json, чтобы использовать загрузку другого класса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...