модуль action:top допустим
Ну быдлокод, же
Ты показал как раз то, о чем я говорил: логика представления перемешана с бизнес логикой.
Это УГ и ФУ, не показывай это никому больше. Это я такой добрый и понимающий, а другие ведь глумиться будут, гг.
З.Ы: извини
логика представления перемешана с бизнес логикой.
что есть что?
З.Ы: извини
я не обидчивый)))
и мне в целом главное результат, а не псевдофеншуй который мне не нравится
ramzes,
if(app::user()->right('hw-themes.view')){
...
}else{
app::xtpl()->complite('access-denied');
}
Это сложнее читать, лучше наоборот:
if(!app::user()->right('hw-themes.view')){
app::xtpl()->complite('access-denied');
return false;
}
...
Такое решение называется "Защитным условием" (или как то так по Макконеллу)
напали все на ramzes)))))))
# ramzes (03.11.2016 / 14:10)
что есть что?
Ну с 16 по 24 строку, это вот тянет на бизнес логику.
HTML в контроллере это, конечно, то же хорошо.
# Delphinum (03.11.2016 / 14:12)
ramzes,
if(app::user()->right('hw-themes.view')){
...
}else{
app::xtpl()->complite('access-denied');
}
Это сложнее читать, лучше наоборот:
if(!app::user()->right('hw-themes.view'))
там нет return
использовать экситы я идейно не стану, просто потому что прекращая свою работу модуль не должен прекращать работу всей системы.
а так по сути, без прерывания мы просто поменяем блоки условия местами)
ramzes, нет, прерывание там нужно для того, чтобы избавится от else в условии и держать основной поток выполнения вне ветвлений и подобной мути, усложняющей чтение кода
# Koenig (03.11.2016 / 14:00)
L!MP, модель же по сути работает с данными, то есть это не обязательно бд, это могут быть массивы, файлы, json ... , модель их должна извлечь и подготовить для вида
Вы сейчас нарываетесь на стены текста по сервисной архитектуре, принципам единства обязанностей, доменным моделям, персистентным моделям, дата мэпперам, репозитариям и вот этому всему.
Не надо, не стоит вскрывать эту тему. Вы ребята молодые, шутливые, вам все легко. Это не то. Гг.
Ну а так то да, ты прав.