2009-04-24 6 views
17

Я всегда с этим сталкиваюсь при запуске нового проекта. Когда я смотрю на такие примеры, как Mephisto, Typo и т. Д., Они направляют свой корень на контроллер, который относится к определенному ресурсу/модели.Именование корневого контроллера

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

Кто-нибудь имеет тенденцию создавать контроллер, специально предназначенный для передней части веб-сайта? Или, возможно, я смотрю на это совершенно неправильно, пожалуйста, дайте мне знать.

редактировать:

Вот где моя путаница существует:

rboard's routes карты корень контроллер с именем индекса ... но я не могу даже найти контроллер индекса

mephisto's routes использовать некоторые custom routing вещь, и нет никакого корня или даже map.connect to '/'

radiant's routes Основная часть приложения идет на один контроллер, который затем делает какую-то сумасшедшую магию

track's routes перейти к контроллеру, который связан с ресурсом (это пример, наиболее близкий к тому, что я описал выше) ... но не подходит мне, потому что, как я уже сказал, у моих корней, как правило, много вещей.

spot us действительно делает что-то похожее на то, что я делаю, есть домашний контроллер, который имеет только действия шоу, и это моя первая страница.

+0

У меня также есть эта проблема на Django и ASP.NET. позволяет не ограничивать ваш вопрос конкретной структурой. :)) – AmiNadimi

ответ

9

Моя проблема, почти каждый сайт я когда-либо построен, я чувствую, как мой фронт на самом деле это сотрудничество всех моих моделей, и я не вижу себя , указывая на контроллер, который является , относящийся к определенному как моя целевая страница .

Точно. Так что вы делаете правильно.

Я часто делаю два контроллера для взаимодействия с вещами, которые не являются обычным материалом REST: «приветствуем» и «приборную панель». Контроллер приветствия сопоставляется с корнем моего сайта, а контроллер «приборной панели» аналогичен, но для входа в систему пользователей.

+0

Итак, вы говорите, что главная страница большинства людей - это по существу один успокоительный ресурс, где эта ситуация требует особого случая, чтобы не сопоставить контроллер, относящийся к модели. – phillc

+0

Я не знаю о большинстве людей. Мой обычно похож на ваш. Они не являются ресурсом, они куча разных. –

2

Не уверен, что это ответ, который вы ищете, но вот что я делаю. Обычно я использую комбинацию из двух типов контроллеров, контроллеров Front Controller и Action. Front Controller заботится о маршрутизации URL-адресов и определяет, какие действия следует предпринять, а Action Controllers обеспечивают фактическую функциональность. Это аналогичный подход к тому, что делает Zend Framework.

С учетом сказанного, я буду тратить весь трафик через фронтальный контроллер, включая трафик главной страницы. Обычно у меня есть контроллер действий с именем «IndexController», который обрабатывает разные запросы страниц, и часто передняя страница попадает под эту категорию (а также такие вещи, как страницы политики конфиденциальности, формы контактов и т. Д.).

Если страница не связана конкретно с какой-либо логикой бизнес-домена на сайте, я склонен ее подставить под моим контроллером действий по индексу, хотя я стараюсь как можно лучше группировать функциональность сайта.

5

Кто-нибудь имеет тенденцию создавать контроллер, специально предназначенный для передней части веб-сайта? Или, возможно, я смотрю на это совершенно неправильно, пожалуйста, дайте мне знать.

Короткий ответ «да».

Для чего это стоит, я обычно придерживаюсь аналогичного подхода к Spot.Us и определяю HomeController с действием/представлением индекса и просто оставляю его на этом.

+1

Я иду с HomeController. Главная, Default, Site все мне кажется хорошим. –

0

SiteController кажется лучшим именем для меня.SiteController будет содержать наиболее важные действия, индекс, и мой SiteController всегда содержит другие действия, такие как контакты, о и т.д.

Смежные вопросы