Цитата (Dezigo @ 9.10.2015 - 14:15) |
View читает прямиком не из модели, а из контролера, который их получил откуда-то. |
о, привет подход из симфони, знаю их ублюдочную реализацию, когда что бы, отобразить что-либо в шаблонах (например общий виджен) нужно вызывать контроллер для забора данных. Я не разделяю такой подход, так как это костыль, явный.
Но я не отрицаю этого подхода, возможно ТС даже такой реализации будет достаточно.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
9.10.2015 - 14:37
Цитата (chee @ 9.10.2015 - 14:36) |
Цитата (Dezigo @ 9.10.2015 - 14:15) | View читает прямиком не из модели, а из контролера, который их получил откуда-то. |
о, привет подход из симфони, знаю их ублюдочную реализацию, когда что бы, отобразить что-либо в шаблонах (например общий виджен) нужно вызывать контроллер для забора данных.
|
херню сморозил, это опциональная фича в симфони, никто не заставляет ей пользоваться
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Цитата (Invis1ble @ 9.10.2015 - 14:37) |
херню сморозил, это опциональная фича в симфони, никто не заставляет ей пользоваться |
Ок. Как мне получить данные из модели, правильным способом, не написав овердофига кода? Желательно ссылку на доку, что бы бест практикс.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
9.10.2015 - 14:46
Цитата (chee @ 9.10.2015 - 14:42) |
Цитата (Invis1ble @ 9.10.2015 - 14:37) | херню сморозил, это опциональная фича в симфони, никто не заставляет ей пользоваться |
Ок. Как мне получить данные из модели, правильным способом? Желательно ссылку на доку, что бы бест практикс.
|
ссылку не дам, но пару примеров навскидку опишу
- классически: передавать во вьюху нужные данные из контроллера
- создать сервис и сделать twig function, которая отображает нужные данные
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Цитата (chee @ 9.10.2015 - 10:42) |
Цитата (Invis1ble @ 9.10.2015 - 14:37) | херню сморозил, это опциональная фича в симфони, никто не заставляет ей пользоваться |
Ок. Как мне получить данные из модели, правильным способом, не написав овердофига кода? Желательно ссылку на доку, что бы бест практикс.
|
Привидите Ваш пример.
В Zend тоже самое как и в symfony.
McLotos
9.10.2015 - 14:48
chee
Это не баг. Это фича =))
Тоже не люблю симфони, весь код как после мясорубки.
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Цитата (Invis1ble @ 9.10.2015 - 14:46) |
- классически: передавать во вьюху нужные данные из контроллера - создать сервис и сделать twig function, которая отображает нужные данные |
То есть, то же самое что я и говорил. Заставить View активно выбирать данные из модельки самой, да при том еще и в шаблонах. Костыль, уже не явный.
Цитата (Invis1ble @ 9.10.2015 - 14:46) |
- классически: передавать во вьюху нужные данные из контроллера |
а он работает, на чем то, что сложнее сайта визитки? Скажи мне, как в этом случае передавать информацию не только по контент области, а по сайдбарам, менюшкам и прочим блокам? Выбирать ее вручную и дублировать код?
Цитата (McLotos @ 9.10.2015 - 14:48) |
Тоже не люблю симфони |
Мои негативные чувства в данном случае относятся только к теме встраивания данных из контроллера в шаблоны. Немогу сказать про весь фреймворк.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (Oyeme @ 9.10.2015 - 14:48) |
В Zend тоже самое как и в symfony. |
Да, на сколько я помню, у них такой же подход, во втором, так как архитектура контроллеров полностью такая же.
Цитата (Oyeme @ 9.10.2015 - 14:48) |
Привидите Ваш пример. |
Я уже приводил примеры, тут
http://phpforum.su/index.php?showtopic=87759
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
9.10.2015 - 15:23
Цитата (chee @ 9.10.2015 - 14:54) |
То есть, то же самое что я и говорил. |
Нет, не то же самое.
Цитата (chee @ 9.10.2015 - 14:36) |
нужно вызывать контроллер для забора данных |
Вызов контроллера из шаблона делает конструкция вида {% render controller ... %} в шаблоне.
Цитата (chee @ 9.10.2015 - 14:54) |
Заставить View активно выбирать данные из модельки самой, да при том еще и в шаблонах. |
Ну нет же, где активное "выбирание"? Передаются готовые данные в scope, которые выводятся обычным echo.
Цитата (chee @ 9.10.2015 - 14:54) |
Скажи мне, как в этом случае передавать информацию не только по контент области, а по сайдбарам, менюшкам и прочим блокам? |
Цитата (Invis1ble @ 9.10.2015 - 14:46) |
- создать сервис и сделать twig function, которая отображает нужные данные |
Вообще сам класс Template создан не корректно, так как
1. Все методы свойства доступны из вне
2. Передай сам конфиг в шаблон
$this->tpl = new Template();
$this->tpl->load($config);
$this->tpl = new Template();
$this->tpl->ext = '.tpl';
$this->tpl->htm = '.htm';
$this->tpl->skinDir = $cfg->getConfig('dirViews');
$this->tpl->skin = $cfg->getConfig('defaultSkin');
$this->tpl->cache = $cfg->getConfig('dirViews') . 'cache';
$this->tpl->lang = $cfg->getConfig('defaultLang');
$this->tpl->clearElements = $cfg->getConfig('clearElements');
$this->tpl->saveCache = $cfg->getConfig('saveCache');
$this->tpl->useHF = $cfg->getConfig('useHF');
$this->tpl->assign('LANG', $lang);
$head = array('CSS'=>$cfg->getConfig('mainPage') . $cfg->getConfig('dirViews') . $cfg->getConfig('defaultSkin') . '/style.css',
'JS'=>$cfg->getConfig('mainPage') . $cfg->getConfig('dirJS') . 'scripts.js');
$this->tpl->assign('HEAD', $head);
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.