Приличное поведение AppKernel.php

Итак, я пытаюсь создать новый проект, но что-то происходит с ядром, чего я действительно не понимаю. Каждый раз, когда я создаю новый Bundle и пытаюсь создать контроллеры или что-то еще, появляется эта ошибка:

PHP Неустранимая ошибка: Не удалось Symfony \ Component \ Debug \ Exception \ ClassNotFoundException: Попытка загрузить класс «ContactBoxBundle» из пространства имен «ContactBoxBundle». Вы забыли оператор «use» для другого пространства имен? в /var/www/ContactBox/app/AppKernel.php:19 Трассировка стека:

0 /var/www/ContactBox/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(450):

AppKernel-> registerBundles ()

1 /var/www/ContactBox/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(116):

Symfony \ Component \ HttpKernel \ kernel-> initializeBundles ()

2 /var/www/ContactBox/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(137):

Symfony \ Component \ HttpKernel \ kernel-> загрузки ()

3 /var/www/ContactBox/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(124):

Symfony \ Bundle \ FrameworkBundle \ Console \ Application-> registerCommands ()

4 /var/www/ContactBox/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(90):

Приложение Symfony \ Bundle \ FrameworkBundle \ Console \ Application-> в /var/www/ContactBox/app/AppKernel.php в строке 19

Я уже делал проект по Symfony, и это никогда не случалось со мной. Есть идеи? Я создал Bundle, используя консольную команду «bin / console generate: bundle». Он генерирует все, что он должен использовать, контроллер по умолчанию, шаблоны и класс, но из-за этой ошибки я не могу ничего сделать с этим. Есть идеи?

AppKernel.php

<?php use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; class AppKernel extends Kernel { 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 ContactBoxBundle\ContactBoxBundle(), ]; 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; } public function getRootDir() { return __DIR__; } public function getCacheDir() { return dirname(__DIR__).'/var/cache/'.$this->getEnvironment(); } public function getLogDir() { return dirname(__DIR__).'/var/logs'; } public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); } } 

ContacBoxBundle.php

 <?php namespace ContactBoxBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class ContactBoxBundle extends Bundle { } 

composer.json

 { "name": "root/contactbox", "license": "proprietary", "type": "project", "autoload": { "psr-4": { "AppBundle\\": "src/AppBundle" }, "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" }, "files": [ "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, "require": { "php": ">=5.5.9", "doctrine/doctrine-bundle": "^1.6", "doctrine/orm": "^2.5", "incenteev/composer-parameter-handler": "^2.0", "sensio/distribution-bundle": "^5.0.19", "sensio/framework-extra-bundle": "^3.0.2", "symfony/monolog-bundle": "^3.1.0", "symfony/polyfill-apcu": "^1.0", "symfony/swiftmailer-bundle": "^2.3.10", "symfony/symfony": "3.3.*", "twig/twig": "^1.0||^2.0" }, "require-dev": { "sensio/generator-bundle": "^3.0", "symfony/phpunit-bridge": "^3.0" }, "scripts": { "symfony-scripts": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" ], "post-install-cmd": [ "@symfony-scripts" ], "post-update-cmd": [ "@symfony-scripts" ] }, "config": { "sort-packages": true }, "extra": { "symfony-app-dir": "app", "symfony-bin-dir": "bin", "symfony-var-dir": "var", "symfony-web-dir": "web", "symfony-tests-dir": "tests", "symfony-assets-install": "relative", "incenteev-parameters": { "file": "app/config/parameters.yml" }, "branch-alias": null } } 

Пожалуйста, помогите, я из-за этого схожу!

Попробуйте изменить файл composer.json следующим образом:

 "psr-4": { "AppBundle\\": "src/AppBundle" } 

к этому:

 "psr-4": { "": "src/" }, 

Таким образом вы загружаете все Bundle под src.

Как это:

 "psr-4": { "AppBundle\\": "src/AppBundle", "ContactBoxBundle\\": "src/ContactBoxBundle", } 

Или вы можете указать каждый пакет для загрузки, если хотите.

После этого вам нужно сделать с консоли:

 composer dump-autoload