Я пытаюсь создать приложение в Symfony 2, чтобы узнать как можно больше новичков. Первый AppBundle, который был создан по умолчанию, был прост. Во-вторых, я создал с помощью create: bundle «ResultBundle», был немного груб, и сначала я получил «ClassNotFoundException», но после некоторых настроек он снова заработал, как и ожидалось.
Вооружившись не столь заслуженной уверенностью, я попытался создать третий комплект «ClinicBundle», и тогда все развалилось. Хотя я создал routing.yml для нового пакета и правильно установил его в AppKernel.php (ссылка идет прямо на новый класс ClinicBundle.php), правильно установил app / config / routing.yml (так же, как и для предыдущего ResultBundle) и добавил Пакет для автозагрузки composer.json, как и в предыдущем пакете, я продолжал получать «ClassNotFoundException» для этого ClinicBundle, как будто его нельзя загрузить в AppKernel.php, хотя, когда я указываю на ссылку в этой строке:
new ClinicBundle\ClinicBundle()
Идет гладко к нужному файлу. Каждый совет, который я нашел в Интернете, уже был сделан и настроен правильно. Все было на месте, но «ClassNotFoundException» продолжал, и он просто не работал. Я старался clear:cache
также, но та же ошибка появилась даже тогда. Я проверил все, и все было на месте. файлы маршрутизации, пути, автозагрузка композитора. AppKernel …
Наконец, я последовал дурному совету с форума и запустил несколько dump-autoload
команда, которая «генерирует файлы автозагрузки» и все после, намного хуже. Теперь я становлюсь длинным FileLoaderLoadException
ошибка со многими строками и основной это:
Cannot load resource "@ClinicBundle/Resources/config/routing.yml". Make sure the "ClinicBundle/Resources/config/routing.yml" bundle is correctly registered and loaded in the application kernel class. If the bundle is registered, make sure the bundle path "@ClinicBundle/Resources/config/routing.yml" is not empty.
Я понятия не имею, что не так, поскольку bundle зарегистрирован в AppKernel и этот файл маршрутизации не пуст, это так:
clinic_homepage:
path: /clinic
defaults: { _controller: ClinicBundle:Default:index }
app:
resource: '@ClinicBundle/Controller/'
type: annotation
Та же структура, что и в предыдущем ResultBundle, который работал до того, как все это произошло. Кроме того, ResultBundle также больше не работает, если я помещу его поверх файла routing.yml в app / config, такая же ошибка происходит, но для ResultBundle. Вот как выглядит файл app / config / rounting.yml:
clinic:
resource: "@ClinicBundle/Resources/config/routing.yml"type: annotation
result:
resource: "@ResultBundle/Resources/config/routing.yml"type: annotation
app:
resource: '@AppBundle/Controller/'
type: annotation
Что случилось? Кто-нибудь знает, чего здесь не хватает? Как добавить новый пакет, чтобы он не отображал «ClassNotFound»? Спасибо!
Просто без type: annotation
clinic:
prefix: /some-prefix
resource: '@ClinicBundle/Resources/config/routing.yml'
Других решений пока нет …