MVC Framework & style/script adding problems
Всем привет.Пишу свой фрейм. Пишу сказать чесно первый раз сам один, пишу гибрит joomla и Zend. Фреймворк поддерживает модель MVC. Сегодня с толкнулся вот с чем: Нужно добавлять скрипты и стили от модулей в темплайт. Дело в том что я реализовал так что темплайт у меня вызывается первым и по ходу прохоздения(считывания сверху вниз) темплайт добавляет компоненты и модули которые могут содержать стили и скрипты. Помню, работая в joomle я вызывал функции addScript() и addStyle(). ХОтелось бы и реализовать их и здесь. Подсказите кто знает, спасибо.
Цитата:
темплайт у меня вызывается первым
Цитата:
темплайт добавляет компоненты и модули
Это MVC?
Обычно, по крайней мере, как у меня, сначала формируется массив данных, которые потом передаются в представление. При таком подходе, приведенной вами проблемы возникнуть не должно.
Правильно я понимаю, что у вас темплейт отрабатывает без буферизации?
Если нет, то опять же, проблем реализовать это не вижу.
Реализация MVC ведь не зависит от того что формируется первым(темплейт -> контроллер или контроллер->темплейт), Да сперва у меня было так как написано ранее но потом по совету друга я переделал и сеичас у меня контроллер вызывается первым. До буферизации чесно сказать не дошел пока...Но проблемма все же таки осталась... Не могли бы вы привести пример?
В общем, спорить не буду, это ваше дело, как организовать framework.
По вашей проблеме.
Предположим, что у вас темплейт вызывается первым.
Тогда, если включить буферизацию вывода, то весь шаблон отработает и может быть считан в переменную. Если мы изначально в шаблоне сделаем несколько служебных меток, например {{JSTAGS}} и {{CSSLINKS}}, то после выполнения темплейта заменяем эти метки на теги подключения соответствующих ресурсов.
Осталось написать функции addcss($file) и addjs($file), что не представляет проблемы.
Про буферизацию: http://www.phpclub.net/manrus/f/ob-start.html
P.S. А если у вас первым вызывается контроллер, то подобной проблемы не может быть в принципе.
спасибо MrLinker за помошь, очень ценю.