Lightning
Трудоголик
объект потому, что объектпотому, что модель возвращает объект!
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
объект потому, что объектпотому, что модель возвращает объект!
<body ....>
<?
// контроллер новостей
$nc = new News_Controller();
$nc->run('view_news'); // вызвали какой-то метод контроллера новостей
$this->addData($nc->getData());
это были нереализованные наброски. да и где ТАМ говнокаша? 3 строчки PHP в шаблоне - это говнокаша?по-моему, это ... говнокаша из HTML+PHP
ок попробуюПопробуй начать с того, что обработчики каждого события писать отдельно
Например отформатировать или раскрасить в зависимости от нескольких условий. Или отобразить некоторые элементы управления, которые должны отображаться только определённой группе пользователей, или ...Например, как подготовить?
объём кода - согласен, потеря производительности - согласен, но никак не потеря гибкости и поддерживаемости.цена универсальности - объем кода, потеря производительности, гибкости и поддерживаемости
Бизнес логика - это условия навязанные бизнесом. По условиям бизнеса определённые данные должны быть раскрашены определённым образом.Есть бизнес логика, есть логика представления
Спасибо за пример. Два варианта решения, которые ты привел, действительно неидеальные (с точки зрения полного разделения бизнес логики и логики представления).но вот тебе простой пример: выдать в таблице отрицательные значения красным, положительные - черным. Это бизнес логика или логика представления? Ответ совсем не однозначный. Можно в шаблоне прописать if ($value<0), а можно с массивом чисел передавать соответствующие цвета из модели. Оба варианта не идеальны.
<?
if( $item[ 'selected' ] ) {
?><span class="red"><?
}else {
?><span class="normal"><?
}
?>
<?= $item[ 'value' ] ?></span>
В Web-приложении это происходит не явно.виьха может вызывать контроллер
Ну если это явно...явно:
ты нажимаешь ссылку, тем самым обращаешься к контроллеру
Какого фига?хэлперы, это тоже кастрированные контроллеры
Зачем отдельный хелпер? Чтобы размазывать бизнес логику? Чем плох мой вариант?по вашему примеру советую третий вариант
<span class="<?= view_get_class($item[ 'value' ]) ?>"><?= $item[ 'value' ] ?></span>
как раз убрали логику в отдельный контроллер(хэлпер) и провели рефакторинг.
Что из того что я сказал, противоречит этому определению? Если в бизнес правилах написано "раскрасить данные в зависимости от следующих условий" то что это?Бизнес-логика — это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «Логика предметной области» (Domain Logic).
Читай выше "Является синонимом термина «Логика предметной области»"И что такое тогда доменная логика?
"Извини, но мне кажется, что это бред какой-то."Логика, которая навязывается доменом?
полный бред.Раскрасить - логика представления. Получение условий - бизнес логика.Например отформатировать или раскрасить в зависимости от нескольких условий.
то ответ:Но ведь данные часто бывает нужно подготовить, причём специфическим образом для каждой страницы.
является верным, и подтверждает чтоБизнес логика должна знать какое число отрицательное, а какое положительное, а логика представления знать, что есть два вида чисел, одни нужно выделить красным, другие - черным.
по дороге выполнив условия бизнес логикиКонтролер он на то и контроллер, что бы обеспечить передачу данных от модели к представлению.
зачем? я писал ещё в предыдущем посте ну и + выглядит гламурнее в шаблоне.Зачем отдельный хелпер? Чтобы размазывать бизнес логику? Чем плох мой вариант?