mvc создание динамической логики

alexhotbed

Новичок
Вот у меня вопрос.
Допустим, у меня есть сейчас структура сайта, которую мне дал заказчик. Как реализовать админку, в которой надо бы при изменении (расширения) структуры добавить новый главный раздел?
По сути каждый раздел это контроллер например "О нас" "Портфолио" "Контакты" AboutController.php, PortfolioController.php, ContactsController.php .
А вот спустя время заказчик захотел расширить структуру и добавить новый раздел "Новости" и как? создавать для этих целей вручную контроллер NewsController.php + NewModel.php + new.tpl(использую Smarty), как-то не динамично получается и без меня заказчик не обойдется - неудобно.
Подскажите что почитать по этой теме и как разобраться, разделение MVC по моему мнению классное, потому что масштабируемое .
 

hell0w0rd

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

alexhotbed

Новичок
Так я его не описал он есть, я понимаю что он должен присутствовать - называется IndexController включается как вы написали при
query string ?controller=njnvdjnf

// определяем с каким контроллером будем работать
$controller_name = isset($_GET['controller']) ? ucfirst($_GET['controller']) : 'Index';

контроллера такого нет NjnvdjnfController.php по этому в скрипте загрузится IndexController.php
вопрос не в этом
 

hell0w0rd

Продвинутый новичок
alexhotbed
А в чем тогда вопрос? Пользователь через админку может создать только статические страницы. Вы можете ввести систему модулей и показывать пользователю шаблон страницы, куда он может просто этот модуль вставлять что-то типо:
{{ module('vk-like') }}
Но тогда нужен либо хороший шаблонизатор вроде twig(и его блоки), или хорошие комментарии, чтобы юзер мог понять что "это" блок новостей, это шапка, а это конец статьи
 

hell0w0rd

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