[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопросы
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
linker
MiksIr
Цитата
Ну вот, контроллер может знать о типе view, а может и не знать - уже повод подумать. Даже если экшн завязан на content-type view - он не должен знать, что там как работает.

Это зависит от задач приложения, но работой любого шаблонизатор является текст, сформированный по шаблону. Контроллер/экшен знает, что от него требуется, а потому и отдаёт данные в шаблонизатор так, как этого требуется по техническому заданию приложения, ибо если в шаблоне вы работаете с числом или массивом, а я вам на вход в шаблонизатор отдам объект, то у вас всё упадёт.
Цитата
Конечно, абстракция. Тот же ->render(...) - это абстракция, за ним может скрываться тот же смарти, а может и еще кто-то.

Да, но эта абстракция будет малофункциональна, а во-вторых, вам придётся потратить очень много времени на бесполезное занятие.
Цитата
По-этому, чем меньше контроллер делает что-то с данными в угоду view - тем лучше всем. Иначе это обычное спагетти. Шаблон, будь то php или twig - должен давать возможность вывести данные так, как это нужно фронт-ендеру.

А можно узнать, вы используете шаблоны даже тогда, когда фронт-ендеру нужен только массив чисел в json? А я-то грешным делом думал, что шаблоны нужны только чтобы формировать html.

_____________
Gear Framework
Gear Framework на Github
twin
MiksIr
Цитата
Нет, волшебные кавычки нарушают важный принцип эскейпинга - контекст. Они просто тупо эскейпят не разбираясь, что для чего. В данном случае у нас есть контекст - вывод html. Так от от волшебства нельзя легко отказаться, в случае шаблонизатора - легко: var|raw.

Так что вполне рабочее решение, принципом близкое к системам безопасности - мы не описываем запрещающие правила, а запрещаем все и описываем разрешающие.
Ну тут вы лукавите. Отменить магические кавычки локально можно тем же стрипслэшем. И принцип получается тот же - всё запретили, что нужно - разрешили. Однако это почему то народу не понравилось и все стали убивать их скопом, а потом разбираться, что эскейпить, а что нет.

В случае с XSS тоже можно одним движением обработать все махом. А что не нужно - убрать тем же htmlspecialchars_decode(). Только так никто не делает, помятуя опыт волшебных кавычек.

Как по мне, так очень неуютно, когда на вывод подаются сырые данные. Считай на откуп верстальщику. Что там он с этим шаблонизатором натворит, е примажет или махом все заэскейпит, или вообще забудет - фиг знает. Шаблон есть шаблон, там по идее не должно приниматься никаких решений. Решения должны приниматься в логической составляющей вьюшки. Так как это прерогатива программиста.

Но повторюсь, если с шаблонами (версткой) работают программисты, они вольны сами выбирать инструмент. Это на их совести, XSS и прочая.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
T1grOK
Да когда же вы угомонитесь?))

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
linker
MiksIr
Цитата
Бывает, для ускорения загрузки страницы, т.е. что бы избежать лишнего ajax запроса при первой загрузке страницы, данные просто вставляются в html страницу как JS переменная.

Т.е. версталю ещё надо разбираться и в js-коде.
Цитата
Куда уж функциональнее. Все, что нужно контроллеру - отдать данные

Речь не о контроллере, а о методах самих шаблонизаторов(классов), это и есть его функционал.
Цитата
Шаблон задает только ТЗ "какие данные". Контроллер задает "как они отданы", и шаблон уже под это пишется, ибо сначала все же пишется контроллер.

Иными словами говоря, контроллер контролирует(тафтология) и знает наперёд, какие данные и в каком виде пойдут в шаблон, что собственно и соответствует тому об чём я тут уже твержу который день, что нет никакой нужды нагружать шаблоны дополнительной логикой и достаточно уже в контроллере/экшене большую часть данных подготавливать заранее, а в шаблоне только выводить их в нужном месте и нужном порядке.

_____________
Gear Framework
Gear Framework на Github
linker
MiksIr
Цитата
А "чистый верстальщик" - это вон, что twin описывал.

К сожалению это делал программист и отнюдь не в заботе о "чистых верстальщиках", а для себя.
Цитата
Если шаблонами занимается фронтендер, а он ими и должен заниматся, он же за JS отвечает.

Есть такая профессия - верстальщик, у нас их целый штат и их совершенно не заботит, что и как пишут журналисты, какие фотки и как щёлкают фотокоры, какие скрипты-автоматизации пишем мы - программисты, они занимаются только тем, что у них есть шаблоны полос в inDesign'е куда они вставляют размеченные тексты (заг, подзаг, текст, подвал), и иллюстрации, нужным образом подготовленные в фотожопе дизайнерами. Если этот версталь будет ещё заниматься корректировкой запятых, стилистики, подгонять кривые баланса чёрно-белого фотокарточек, то это нафиг никому не нужно.
Цитата
какие данные - да, в каком виде - нет, не должен он это знать.

Если мне надо отсортировать данные, чтобы они отобразились как надо, то делать это надо в контроллере. Если шаблон требует отображения только ФИО, то нет смысла загонять весь объект. Т.е. хочешь-не хочешь, а знать вид приходится.

_____________
Gear Framework
Gear Framework на Github
Valick
Цитата
Сортировка, увы, тоже имеет отношения к данным, ибо она делается на стороне СУБД

Спорный вопрос, иногда требуется сортировать и в хвост и в гриву уже полученный объем данных, можно конечно попросить сервер потрудиться, но лучше ограничется JS сортировкой.
А в остальном я на вашей стороне.


_____________
Стимулятор ~yoomoney - 41001303250491
linker
MiksIr
Цитата
Есть такая профессия - дворник.

Не конструктивно.
Цитата
ФИО вместо всего объекта - это "какие данные"

Не только какие, но и как и почему я должен отдать только ФИО, потому что в другом случае будет проще отдать объект целиком.
Цитата
Сортировка, увы, тоже имеет отношения к данным, ибо она делается на стороне СУБД и может зависеть от входных параметров.

Порядок сортировки в СУБД определяет каким образом эти данные отобразятся в шаблоне.
Собственно понятие "как" должно относится к HTML-размете и CSS, всё остальное должен решать программист в соответствии с ТЗ, алгоритмом и общим воркфлоу комманды дизайнеров, версталей и программистов(PHP, JS и прочих).

_____________
Gear Framework
Gear Framework на Github
linker
Valick
Несомненно, что иногда это перекладывают на плечи JS-кодера, дабы разгрузить сервер и нагрузить клиента, но это хорошо когда и в хвост и в гриву сортируют ограниченный небольшой набор данных.

_____________
Gear Framework
Gear Framework на Github
twin
MiksIr
Цитата
Есть такая профессия - дворник. Он эти ваши компьютеры - вообще на х* вертел =) И чо?
Вот именно. Давайте еще дворников программированию обучим, мало ли.

Вообще есть два направления. Дизайнер-верстальщик и верстальщик-программист, в миру фронт-эндер. Так вот дизайнер-верстальщик работает с макетами. Сначала с фотошопом, потом с HTML. Ему никуда не вперлось прогрммирование. Как только он начинает изучать макро-язык программирования (тот же Смарти), он становится верстальщиком-программистом.

Я уже говорил, что дизайнер по определению не может быть хорошим программистом. Как и программист не может быть хорошим дизайнером. Сделать что-то среднее, типа "дизайнер-верстальщик-программист", это... У меня друг, очень успешный в Москве адвокат. Когда он приехал покорять Москву много лет назад и попытался устроиться в адвокадскую контору, у него спросили: вы какого профиля? Он гордо заявил - широкого. Ему ответили - значит никакого. И указали на дверь.

Так что все подбирают штат по разному. В нашей конторе верстальщика близко не подпускают к принятию решений и работе с данными. Он по сути дизайнер. человек творческий, а значит безолаберный. Зато такие макеты клепает, пальчики оближешь.

И программиста близко не подпускают к дизайну. Соответственно он работает с готовыми HTML шаблонами. И ему нафиг не нужны шаблонизаторы. ибо так построена схема работы.

У вас, как я понял, верстальщик. это в первую очередь программист. А дизайнер не выходит за рамки фотошопа. Да, и такое бывает. Может там и удобно юзать шаблонизатор. Может быть, не стану спорить, такого опыта не имею.

Однако совершенно точно одно. Шаблонизатор - инструмент программиста. К верстальщику как таковому совершенно не имеет отношения. Ибо как только верстальщик начинает оперировать ифами и форечами, он им быть перестает и становится сопливым джуниором-программистом. Часто (особенно если это девушки) ничего хорошего из этого не выходит. И шикарный дизайнер-верстальщик становится посредственным верстальщиком-программистом. Которого вы и боитесь подпустить к данным, прикрываясь фиговым листком шаблонизатора.

Ну никто не вправе оспаривать ваш выбор. Раз устраивает такая постановка вещей, ради Бога. Тут шаблонизатор действительно что доктор прописал...


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.