Всем добра! Шел второй час ночи... Задача не решалась... Направьте на путь истинный!? Очень прошу Итак. Есть MVC (роутинг, контроллер и т.д. все как пологается) и шаблонизатор Twig. Вопрос: Как вывести постоянную информацию (проверка авторизации, сайдбар и прочая инфа) которая нужна на всех страницах сайта во все public function view всех контроллерах? Сейчас в /controller/home.php выводится вся инфа для главной и инфа для всех страниц. Но допустим в /controller/account.php нет инфы для всех страниц. Спасибо всем кто откликнется!
У тебя должен быть Frong Controller. В нем обрабатываешь все входящие запросы, собираешь нужные данные создаешь объект контроллера страницы и передаешь данные этому объекту, далее дополняешь данными для текущей страницы и передаешь во view/ --- Добавлено --- Т.е. тебе нужна единая точка входа, чтобы избежать дублирования в каждокм контроллере страницы.
Сложно дать однозначный ответ. Кстати, Front Controller а не Frog Controller я там опечатался. Тебе надо продумать этот механизм как интегрировать туда этот паттерн. Потому что только ты знаешь как все работает у тебя в системе.
Походу заново!? Т.к. сейчас так: application/system/routes/main.get.php PHP: # Change locale Route::get('/setlocale/(:any)', function($lang) { $setlang = new Language(); $setlang->setLocale($lang); }); # Set referrals cookies from GET request Route::get('/ref/(:num)', function($key) { $affiliate = new Controller_Affiliate(); $affiliate->refferalCookies($key); }); # Home page Route::get('/', function() { $home = new Controller_Home(); $home->view(); }); # News page Route::get('/news', function() { $account = new Controller_News(); $account->News(); }); и application/system/routes/main.post.php Ну тут для POST обработка форм. Получается мне нужно как переделать роутинг свой, что бы для каждой страницы НЕ прописывать роутинг. Или если прописывать то как то иначе. Верно думаю?
Я бы интегрировал туда события, и в каком-нибудь событии дописывал всё. Вот этот пакет мне нравится по событиям: http://event.thephpleague.com/2.0/
Как мне это поможет? Мне нужно как то вывести для всех контроллеров (главная,новости, контакты и т.д.) данные проверки авторизации и т.д. Вот есть application/class/class.controller.php основной и есть application/controller/home.php (class Controller_Home extends Controller) ну и т.д. Вопрос: Как во все контроллеры передать данные авторизации? Прописывать все во всех не предлагать )) P.S. Прописываю: мультиязычность, чекаю авторизацию, инфу в сайд бар(статистика с базы) и т.д. Во всех контроллерах это писать? А если имя изменится или добавить нужно будет? Во всех 100шт контроллерах дописывать?
Очевидно, вы недостаточно понимаете возможности шаблонизатора. Если это так, советую найти и посмотреть в сети примеры работы с любым шаблонизатором.
Посмотри видео уроки как используют MVC и шаблонизатор Smarty, думаю Twig не сильно отличается от него. Думаю ты найдешь тут решение.