шаблон c собачкой (@) или все же без

StUV

Rotaredom
Дизайнер может захотеть показывать имя пользователя, или не захотеть. Что ж ему, фатал значит, да?
а дизайнер это левый чувак, который с проектом делает чего захочет и тз ему пофик ?

при таком подходе можно ваще с ума сойти, когда у тебя на сайте все летает независимо от твоего кода, а по принципу "что дизайнеру/верстальщику в голову взбредет" ;)

у нас в конторе на каждую закорючку на сайте 10 согласований и переутверждений с выпуском нового варианта ТЗ, согласованного и подписанного всеми участниками разработки...

а ты говоришь... :D
 

WP

^_^
Фанат
Дизайнер не захотел показывать имя пользователя, это баг? Значит ему надо поиметь в моск программера, чтоб тот assign убрал, а если еще и разные скины сайта? Шаблон это ведь поле деятельности дизайнера. В общем я аргументы изложил, каждый делает так, как удобнее ему, но мне это кажется дикостью, сужу со своей колокольни.
StUV
А потом он захочет что-то изменить, опять донимать программера? :)
 

bgm

 
Есть три участника процесса:
- дизайнер
- верстальщик
- программист

Собственно именно программист соединяет функционал с дизайном через вёрстку. Откуда вообще взялось представление, что верстальщик должен добавлять функционал в вёрстку? Почему не программист?

И согласен с тем, что в шаблоне необходимо оперировать только теми данными, которые в нём могут быть доступны: глобальные переменные и некое подобие пространства имён.
 

С.

Продвинутый новичок
А мне стало интересно, как StUV реализовал проверку, что шаблон не использовал какое-либо данное?
 

StUV

Rotaredom
С.
public assign($varname, $value) - устанавливает значение
public fetch($tplname) - фетчит шаблон - фактически инклудит пхп-натив шаблон внутри ob_*

в шаблоне для получения значений используется
protected getValueOf($varname)

объект шаблонизатора хранит два массива - массив переданных шублону объектов и массив строковых имен этих объектов, заполняемый по мере выполнения getValueOf

соответственно, перед тем как отдать профетченный шаблон - в методе fetch эти массивы сравниваются

если в getValueOf побывали не все переменные, которые прошли через assign - throw new Exception...

все просто =)
 

С.

Продвинутый новичок
Понятно.
getValueOf($varname) вместо $varname.

Не впечатлен.

Тогда уж надо getValueOf('varname'), а $varname вообще не существует. Чтоб у верстальщика не возникло желания "случайно" обойти твой метод. Какой смысл декларировать глобальные переменные, к которым нельзя обращатся напрямую?
 

denver

?>Скриптер
StUV
Гениально!

1. Каждый раз когда верстальщик будет версать новый шаблон он должен начать не с чистого листа, а с этакого мусора который впоследствие следует расположить в нужные места.

2. Каждый раз когда нужна некая мелкая дополнительная характеристика какого-то объекта которая раньше не присутствовала в верстке но злой менеджер захотел вдруг чтобы показывалась еще и user_email на странице всех полььзователей то работа будет как для верстальщика так и для StUVа, а на следующий день манагер поймет свою ошибку и скажет "убрать" -- работа снова для обоих. я понимаю ваш гениальный план! ;)

ЗЫ. Скорее всего в последнем случае верстальщик проявит сообразительность и дабы не напрягать мудрого пхпшника спрячет emailы в невидимый блок и забудет о них. Вот это будет апофеоз! :D

Ах да..

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

StUV

Rotaredom
denver
см. мой пост
http://www.phpclub.ru/talk/showthread.php?postid=633062#post633062
и последний пост Фаната
и твои аргументы отметаются как не имеющие смысла...

-~{}~ 25.07.06 11:47:

С.
смысл в том, что в шаблоне фетчится только то, что ему отдали - иначе - tpl-exception
и никто кроме шаблонизатора шаблон не профетчит без php-fatal_error

-~{}~ 25.07.06 11:48:

С.
зы: в обоих случаях я получу мыло с точным указанием места ошибки и сделаю фикс в течение часа максимум
 

bgm

 
Волшебная формула "разделения труда" для некоторых, видимо, кажется слишком волшебной.
 

StUV

Rotaredom
С.
Понятно.
getValueOf($varname) вместо $varname.

Не впечатлен.
только щас дошло =)))
я привел сигнатуру метода в классе
в шаблоне ессно используется как getValueOf('varname')
=)))
 
Сверху