| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Уточнение по выбору контроллеров сайта |
| Автор: Ilfirin 19.9.2012, 09:09 |
| Начинаю разрабатывать сайт компании. Главная задача: реализовать базовый функционал и в дальнейшем безболезненно добавлять новые возможности. Я выбрал шаблон MVC (Yii-framework). Не могу толком разобраться, какой набор контроллеров мне использовать, чтобы добиться максимальной гибкости. Допустим сайт имеет:
1) Статические страницы (Главная страница, Контакты, О компании, Список услуг) загружать из DB и использовать для этого например StaticPageController.php. Для новостей, форума, админки, формы обратной связи использоваться свои контроллеры. 2) Сделать всего 2 контроллера на сайте: Frontend и Backend (admin). FrontEnd будет проверять свои параметры и в соответствии с ними загружать соответствующие действия: sitename.com/page/static/home sitename.com/page/static/contacts sitename.com/page/forum/thread/ и т. д. Слово page потом удалить через mod_rewrite. Плюсом этого метода я вижу, что не нужно постоянно дублировать в контроллерах загрузку шаблона и отправку страницы клиенту. 3) ещё какой-нибудь способ? Как вообще это делается на крупных проектах? И ещё вопрос (не по теме, конечно). Какой нынче шаблонизатор в моде (удобен и гибок)? Использовать для этого PHP или, например, Smarty? |
| Автор: Sanchezzz 19.9.2012, 10:33 | ||
Если вы пишите на Yii забудьте про шаблонизаторы это ломает принцип использование представления (view) Что по гибкости то для каждого уникального типа контролера должен быть уникальный контроллер и модель управления. Что бы потом не попасть в просак поменял в одном месте поменялось везде где не нужно. У меня еще не было надобности реализовывать промежуточные контролеры на Yii. Хоть это и будет считается велосипедом чистой воды)) Что я имею виду под промежуточным контроллером: Это такой же контроллер но имеет функцию которая делится на условия цепочки 1 Проверяют путь и проверяет если данные для текстовой страницы В БД, если есть данные выводится контролер текстой информации 2 Если первое условие не прошло то вызывается контролер по условию если такого контролера нет 404 ошибка. Текстовые страниц редактируются через другой контролер для админки. Это дает мне создавать уникальные пути для статичных страниц от / корня сайта а не /content/page/([0-9]+)Имя страницы в русском или другом языке. ( где content - это контролер / page - метод / ([0-9]+) это параметр Можно было конечно поисзвращятся с базовым классом написать свой роутер разбора url и определить в конфиге Yii Yii использую только в проектах за которые мне платят Потому что кто будет поддерживать сайт наверника будет знать Yii и где искать документацию вот отличии от собственного фреймворка-вилосипеда. Ктому же Yii хорошо вылизан для инструмента. |
| Автор: Ilfirin 19.9.2012, 11:00 |
| Sanchezzz, спасибо. Все просто и доступно. Я тоже склонялся к первому варианту. Смущало только то, что в каждом таком контроллере постоянно надо выполнять процедуру вывода html. |