Symfony не может зарегистрировать пакет

У меня есть связка в 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 Fatal error: Uncaught Error: Class 'MyCompany\Action\Provider\MyAppProvider\Bundle\MyAppBundle' not found in /var/www/html/symproject/app/AppKernel.php:20\nStack trace:\n#0 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(494): AppKernel->registerBundles()\n#1 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(134): Symfony\Component\HttpKernel\Kernel->initializeBundles()\n#2 /var/www/html/symproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(197): Symfony\Component\HttpKernel\Kernel->boot()\n#3 /var/www/html/symproject/web/app.php(19): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))\n#4 {main}\n thrown in /var/www/html/symproject/app/AppKernel.php on line 20

похоже, что связка MyCompany\ACtion\Provider\MyAppProvider\Bundle\MyAppBundle не найдена, у вас уже есть класс? вы настраивали автозагрузку бандла?

Saif Eddin Gmati 16.05.2018 11:02

Может быть, потому что C - это заглавная буква в ACtion, а в других местах она маленькая.

prit.patel 16.05.2018 11:03

У вас проблемы с путями / пространствами имен. symproject/src/MyAppBundle/src/Bundle/MyAppBundle.php должен быть symproject/src/MyAppBundle/MyAppBundle.php, а затем настройте пространства имен. Или вам нужно определить psr-4 в вашем композиторе. Я думаю, ты что-то напортачил.

Jack Skeletron 16.05.2018 11:06

Заглавная C - это опечатка, переписывающая ее для переполнения стека.

prgrm 16.05.2018 11:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
1 233
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Другие вопросы по теме