[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Холивар про шаблонизатор.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
killer8080
Цитата (twin @ 25.05.2014 - 20:51)
Это не от хорошей жизни.      А если серьёзно, то этот довод один из главных, декларируемых, как полезная фишка шаблонизатора - безопасность. Мол мало ли что, кто-нибудь набарагозит в шаблоне и порушит систему.

так в том то и дело, что сам факт наличия этой конструкции сводит на нет аргумент в пользу "безопасности" smile.gif
twin
Игорь_Vasinsky
Цитата
twin - я тока не понял - как твой шаблонизатор работает с циклами
и как быть с условиями ветвления - когда в один момент нужно вывести один html кусок,а в другом случае другой.
Вобщем то очень просто... Если смотрел код, могу продемонстрировать. Поменяй этот акшен:

public static function actionCompliments()
{
$login = htmlspecialchars(@$_SESSION['login']);
$blocks['compliments'] = '';

for($i = 1; $i < 5; ++$i)
{
$data = array('login' => $login .$i);
$blocks['compliments'] .= self::$tpl->getTplBlock('enter_form')->parseTplBlock($data);
}

self::_render($blocks);
}
и запусти. Примерно по той же схеме и ветвления. Да что угодно можно напихать.

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

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

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

user posted image
twin
killer8080
Цитата
так в том то и дело, что сам факт наличия этой конструкции сводит на нет аргумент в пользу "безопасности"
Ну я же говорю - не зря её сделали опцией.

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

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

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

user posted image
twin
paul85
Цитата
Вопрос больше философский, ИМХО. Свой продукт тяжело внедрять.
Да именно. Я и не собираюсь никого заставлять ничего внедрять. Мне просто интересно, почему столь очевидный метод никем из разработчиков шаблонизаторов не используется. Пока только один ответ - стереотипы. Так привычнее, вот и всё.

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

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

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

user posted image
BaNru
Ещё раз, перефразирую.
Девочке выучить простые if else не очень сложно. Ну недельку другую на усвоение в запущенном случае.

Допустим надо вывести туже корзину, но если пользователь авторизирован, в противном случае зарегиться (не будем про юзабильность).

Верстальщики часто работают с готовым продуктом и звать для этого программиста - не выгодно и накладно. Для этого проще самому зафигачить проверку небольшую.

if (user == true){}
else{}

Повторяю, что не всегда можно предугадать пожелания верстальщика и извращения дизайнера. А многие проекты (CMS, FW) разрабатываются для людей разного уровня, а не только для профи. Мне например не понятен твой класс и так просто я его править не полезу. Тебя сразу звать? А если ты пишешь по китайски, а я арабски, то нам искать общий язык?
vagrand
paul85
Цитата
Что там такого остается? Я так понял самая фишка как раз и есть в AR, в CActiveForm ну и еще там кое где.


Очень много чего остается. А по повод не использовать AR или хелперы, то можно и не использовать, но зачем использовать лом если есть отбойный молоток?

twin
Цитата
Ну к примеру я должен, даже обязан, наследоваться от дпустим CModel, даже если мне ни единой строчки базового функционала не нужно.


Ничего подобного. Если в каком-то экшене контролера не нужен доступ к БД, то не используй.

Цитата
Ну о CHtml вообще говорено-переговорено. Сколько мне нужно фигни затащить в оперативку, чтобы воспользоваться одним методом encode()? Не помню, но овер 10000 строк кода. Хотя сам метод эквивалентен htmlspecialchars()? не более того.


Так а что мешает использовать именно htmlspecialchars там где больше никаких методов из этого класса не используется?



_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
bestxp
как по мне раздутая тема,
1. Верстальщики умеют программировать хотя бы на том же JS
2. Верстальщики не должны натягивать шаблоны
3. Шаблонизатор обычно выполняет упрощение логики во вью

например
 

{% for key, item in items %}
 {{key}} - {{value.property}}

{% else %}

Записей не найдено
{% end %}



Уменьшаем количество кода во вью , убираем смесь пхп и хтмл, не даем использовать натив и проблем с этим связанным


Прослойка ничего не дает плохого, особенно компилированные

vagrand
bestxp
Цитата
например


Ох, если б все было так просто. Сперва конечно нужно просто чего-то вывести в цикле, а потом пошло поехало: обработать переменные перед выводом, посчитать арифметические выражения, отформатировать дату, найти вхождение подстроки и т.д., примеров можно придумать очень много. И вот тут большинство шаблонизаторов обделываются. И приходится программисту или допиливать функционал шаблонизатора, вводя новые конструкции, которые и без того запутывают новый для всех синтаксис шаблонов или дополнительно подготавливать массивы данных в моделях/контролерах, т.е. повторно прогонять циклы, там где можно было обойтись одним походом.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
twin
bestxp
Цитата
1. Верстальщики умеют программировать хотя бы на том же JS
Да... А я всегда думал, что этим занимаются фронт-энд программисты.
Цитата
2. Верстальщики не должны натягивать шаблоны
В очередной раз повторюсь. Натягивать не должны, тут я полностью солидарен. А вот правки в верстку вносить должны. И именно они. А получается, что они дергают программистов.
Цитата
3. Шаблонизатор обычно выполняет упрощение логики во вью
Не всегда. Даже прежде чем в смарти передать данные, их обычно подготавливают. А часть логики все же тащат в шаблон. Причем извращая до неузнаваемости.

Ну и
Цитата
например

{% for key, item in items %}
{{key}} - {{value.property}}

{% else %}

Записей не найдено
{% end %}

сравним с этим
<!--// message -->
{{key}} - {{value}}
<!--// message end -->

<!--// no_message
Записей не найдено
<!--// no_message end -->


Ну объективно, что прозрачнее? И ремонтопригоднее?

А компилляция - отдельная тема. Я тут про разбор говорю, про принцип, а не сравниваю свою поделку за два часа на коленке писанную со смарти. :)

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

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

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

user posted image
BaNru
Вы вот о каком мире говорите и стране?

Я не разу не видел чтобы требовался только верстальщик или только фронт-энд программист.
Очень часто ещё крестиком вышивать надо уметь.

Даже если требуется дизайнер, то положительным будет и верстка, про фронт-энд кодинг хотя бы на jQ.
twin
BaNru
Цитата
Вы вот о каком мире говорите и стране?
Об увлекательном мире командной разработки. Вернее даже не столь о разработке, сколь о поддержке проекта. Для фрилансеров-одиночек, которые и швец и жнец и на дуде могет, конечно это не интересно. smile.gif

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

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

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

user posted image
BaNru
Где в данном случае я спросил о фрилансе?
Я как раз и сказал о вакансиях в "команды".
twin
Ну не знаю. Я же не говорю, что это круто и нужно немедленно бросать все и юзать мою схему. Команда команде рознь. У всех по разному.
Мы у себя допустим осознанно ушли от смарти именно по этой причине. Потому что верстальщики не то что не хотят, они не имеют возможности еще и с логикой заниматься. А программистам шаблонизаторы нафиг не нужны, им натива заглаза.

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

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

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

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

user posted image
twin
BaNru
Цитата
Верстальщики часто работают с готовым продуктом и звать для этого программиста - не выгодно и накладно. Для этого проще самому зафигачить проверку небольшую.

if (user == true){}
else{}
А откуда, позволь спросить, появилась user? Она же должна откуда то появиться. А значит нужно все равно лезть в класс или звать программиста.

Я уже говорил - этого не избежать, если требуется изменение логики.. Но элементарную верстку по моей схеме править в сто раз удобнее. Ничего не нужно верстальщику, кроме редактора и браузера. Ни программист, ни даже сервер.

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

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

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

user posted image
BaNru
Везет вашим девочкам )))

А что же ты на работе-то не предложишь внедрить и объездить? (это не сарказм и не риторический вопрос)

Цитата
А откуда, позволь спросить, появилась user? Она же должна откуда то появиться. А значит нужно все равно лезть в класс или звать программиста.

Так данные то в любом случае должны поступать из "движка". Переменная, константа, функция, ещё что-то.

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

Завтра заказчику или начальству взбредет цикл изменить, сделать его задом наперед, так лезть в шаблонизатор.
Быстрый ответ:

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