Symfony 2 — навигация между пакетами

Я начал использовать Symfony 2 всего пару дней назад. В настоящее время я работаю над инструментом для исследования рынка. Предполагается, что этот инструмент состоит из нескольких модулей, каждый из которых является пакетом в проекте Symfony. Конечно, я мог бы просто сделать все эти модули одним пакетом, но идея состоит в том, чтобы сохранить код как можно более легким в обслуживании, чтобы упростить процесс исправления ошибок или улучшения и добавления новых модулей.

Итак, в основном моя структура папок выглядит так:

AppBundle -> Controller -> DefaultController: используется при начальной загрузке сайта. Он ничего не делает, кроме как возвращает обработанный шаблон Twig, который лежит в моем пакете веб-интерфейса.

Компания
|
| __> AdministrationBundle: предполагается, что это бэкэнд управления, в котором можно настраивать модули, добавлять или редактировать пользователей и т. Д.

  |
|__> FrontendBundle: this is the core bundle so to say. It contains the basic Twig template, which is used to render the general site structure and navigation

|
|__> Module_1_Bundle: that's the first module which is supposed to being navigated to basic Twig template generated in the frontend controller

|
|__> Module_2_Bundle: same as module 1.

Интерфейс отображается правильно, никаких проблем нет. Но как только я пытаюсь перейти к модулю 1 или модулю 2 (я еще не начал с пакета администрирования), все, что я получаю, это

К сожалению! Произошла ошибка
Сервер вернул «500 Внутренняя ошибка сервера».
Что-то сломано. Пожалуйста, дайте нам знать, что вы делали, когда произошла эта ошибка. Мы исправим это как можно скорее. Извините за причиненные неудобства.

Нет ничего ни в журналах ошибок Apache, ни в журналах Symfony, и я буквально не имею ни малейшего представления о том, что там происходит. Я настроил начальные маршруты к модулям в app / config / routing.yml следующим образом:

app:
resource: @AppBundle/Controller
type:     annotation

company_frontend:
resource:  "@CompanyFrontendBundle/Resources/config/routing.yml"
company_backend:
resource: "@CompanyAdministrationBundle/Resources/config/routing.yml"
company_module_1:
resource: "@CompanyModule_1_Bundle/Resources/config/routing.yml"
company_module_2:
resource: "@CompanyModule_2_Bundle/Resources/config/routing.yml"

Каждый routing.yml затем содержит маршруты, необходимые для соответствующего модуля, который в основном похож на это (например, company / Module_1_Bundle / Resources / config / routing.yml):

company_module_1:
path:     /module1
defaults: { _controller: CompanyModule_1_Bundle:Module1:index }

с соответствующим Module1Controller следующим образом:

<?php

namespace Company\Module_1_Bundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class Module1Controller extends Controller
{
public function indexAction()
{
return $this->render('CompanyModule_1_Bundle:Default:index.html.twig', array("headerText" => "some Module 1 heading"));
}

}

Я действительно почесал голову, почему это не работает. Я очень надеюсь, что вы, ребята, сможете мне помочь. 🙂

0

Решение

Хорошо, вы можете официально назвать меня идиотом. 🙂 После обновления кода я решил немного почистить свой сервер. Частично это переименовывало каталог, в котором находился проект, и настраивало конфигурацию apache2 vhost. Что я не откорректируйте настройки развертывания в PHPStorm, хотя это означает, что все сделанные мной изменения по-прежнему сохраняются в старой папке (которую PHPStorm создал заново), поэтому я никогда не видел никаких изменений, поскольку файлы в недавно переименованной папке остались нетронутыми. Черт. Сейчас все отсортировано и работает. Еще раз спасибо. 🙂

1

Другие решения

Других решений пока нет …