MVC загрузка контроллеров

AmdY

Пью пиво
Команда форума
self::getController(); ??
а урл /new/news-title.html он обработает?
 

buuni

Новичок
Есть одно но, если экшен будет index, то его обязательно нужно в строке указывать, хочу сейчас попробывать сделать что бы можно было не указывать имя экшена если он равен index, т.е переходить по ссылке вида www.../my_controller/index/option1/value1/option2/value2/ так же как и по ссылке www.../my_controller/option1/value1/option2/value2/
 

buuni

Новичок
AmdY, не могу сказать, что так и есть, я не использую такого рода ссылки, так что он это примет как имя экшена и соответственно не найдя, его кинет 404.
 

Тугай

Новичок
Нет, не фреймворк, где-то вычитал, где-то скопировал, где-то сам :)

Да, я в принципе сейчас понимаю как можно передать другую модель, но, я думаю что есть какие-то более рациональные способы.
Допустим, пользователь перешел в раздел "Новости" (www.../news), соответственно подгружается контроллер "controller_news", далее там идет обращение к модели "model_news", там реализуется вся логика, далее возвращается массив с полученными данными, то бишь $data. В нем хранятся только данные полученных новостей. Дальше все поступает в вид и там реализуется. Вот в чем вопрос. Я могу конечно в модели "model_news" подгружать другие модели, допустим модель с пользователями online и потом в представлении уже выводить этот блок, но это получается как-то не рационально, создавать в каждой модели метод с получением этого блока. Может быть можно как-то обойтись без этого ?
Может быть я чего-то не допонимаю, подскажите! Спасибо !
Для вывода по научному есть два паттерена Composition и Decoration.

Смысл такой что в Compodition ты просто в контролерее вызавешь модели и вывод друг за другом.
Т.е. если тебе на странице новостоей надо еще вывести и список пользователей, то ты сначала вывдоишь список пользователей потом новости или наоборот новости, потом список пользователей.
То что ты на странице новостей знает контролер, нужно просто две модели и вывести их. В мобильных приложниях где узкий экран это супер.

В Decoration тебе нужен главный шаблон(layout) более высокого уровня, у которого есть основная часть и контент. В этом случае твой список пользователейй должен быть выведен в в общей раньше, новости уже как основной блок контента.
Т.е. в котролере новостей ты выводишь сначала общую декорацию для всех твоих контролеров и внутри этого шаблона блок новостей.
 

buuni

Новичок
Для вывода по научному есть два паттерена Composition и Decoration.

Смысл такой что в Compodition ты просто в контролерее вызавешь модели и вывод друг за другом.
Т.е. если тебе на странице новостоей надо еще вывести и список пользователей, то ты сначала вывдоишь список пользователей потом новости или наоборот новости, потом список пользователей.
То что ты на странице новостей знает контролер, нужно просто две модели и вывести их. В мобильных приложниях где узкий экран это супер.

В Decoration тебе нужен главный шаблон(layout) более высокого уровня, у которого есть основная часть и контент. В этом случае твой список пользователейй должен быть выведен в в общей раньше, новости уже как основной блок контента.
Т.е. в котролере новостей ты выводишь сначала общую декорацию для всех твоих контролеров и внутри этого шаблона блок новостей.
Спасибо большое! Это то что мне нужно было! Очень благодарен!
 

WMix

герр M:)ller
Партнер клуба
Тугай
а я было подумал ты против патернов...
 

Тугай

Новичок
WMix
Неделю б назад я написал бы два сопосба. :)
То что у новых методов и практик программирования есть имена это хорошо.
 

Тугай

Новичок
fixxxer
Я учил ООП, на C++ у Бьярна Страустрапа (по его книжке), и ООП у Гради Буча, который оказывается написал анотацию к банде четырех. Они как-то обходились без такой терменолгии.
Банда четырех - банда одним соловом. :)
 

fixxxer

К.О.
Партнер клуба
Буч о более базовых вещах пишет, без их понимания нечего пытаться читать GoF. Обе эти книги на примере С++ только потому что это в те времена был основной язык.

А у Страуструпа не про ООП, а про реализацию ООП в С++, которая, прямо скажем, не идеал
 
Сверху