Zend_Layout

Или как да не пишем във всеки шаблон, че ще има header.

Всеки, който започва да използва нов web framework първоначално се запитва за няколко основни неща. Като цяло те и отговарят на MVC практиката.

  1. Как да направим така че всичките ни състояния в сайта да бъдат описани в различни файлове, така че да можем лесно да си намираме и поддържаме кода.
  2. Как да се погрижим за правата и ролите на различните потребители на сайта.
  3. Как да разделим html-а на няколко файла, за да не пишем по един милион пъти includes на header или footer.

Почти всеки, който се е сблъсквал с PHP програмиране е чувал за Smarty и когато някой, по-често псевдо разбирач, ти изреди една плеяда колко е ретроградно да се слага php код измежду html таговете и как трябвало Smarty да се притече на помощ, ето един добър довод за излагане против Smarty.

Хубаво е да се ползва Smarty. Няма проблем. Само че нека си представим следния пример. Имаме сайт с header – content – footer. Като обикновено header-a съдържа разни връзки към css и meta тагове. Със Smarty като искаме да използваме тая структура за 10 файла, 10 пъти ще имаме следния код:

{include file=”header.tpl”}

{include file=”content.tpl”}

{include file=”footer.tpl”}

и ако това се повтаря в 100 файла, ще се наложи, няма как – 100 пъти едно и също за тоя header и footer.

След като и Zend Framework се е измъчил в по-предишни версии, доколкото разбирам, все пак аз отскоро се захванах с него и направо започнах от 1.5.3, сега проблемът се решава от Zend_Layout. A и сблъсквайки се с проблема с header-a и footer-a стигнаь до четене на няколко урока, от които разбрах, че хората преди са се опитвали да решат проблема с plugin към Front Controller-а и явно това е било разпространената практика.

Може би и на създателите на ZF им е станало ясно, че така няма да стане и затова се е погрижил Zend_Layout.

Дори сега се появяват уроци които се стремят да помогнат на решаването на този проблем с помощта на plugin, но аз препоръчвам да не се захваща никой с тях, въпреки че може на някой да му е интересно. Най-добре да се насочи към използването на Zend_Layout. За жалост пък при него поне официалната документация ми се видя недостатъчно, но пък намерих една презентация от webinar на Zend.

4 thoughts on “Zend_Layout

  1. Ваш блог, естественно, очень полезен. Сам иногда пользуюсь информацией, которая размещена на подобных блогах. Хочу заметить, что такие блоги не только познавательны, но и довольно популярны в современном Интернете. Побольше бы их. Конечно, остаются некоторые вопросы, которые хотелось бы уточнить, но уверен что смогу их решить при следующем посещении. Думаю, многие согласны со мной. Распространение подобной информации – дело благородное и требующее достойного внимание со стороны заинтересованных лиц. Сейчас вынужден покинуть данный блог, но уверен что на днях не один раз посещу его. Спасибо.

  2. Очень приятно видеть таких умный людей, красиво пишите посты, очень полезно и разнообразно. Буду вашей постоянной читательницей. Еще раз спасибо.

  3. теперь все ясно и понятно, о чем вы пытались донести. Я в шоке.

  4. Да, да теперь все понятно и ясно в этой теме. Долго думал насчет нее, но было небольшое недопонимание спасибо, пойду дальше читать.

Leave a Reply

Your email address will not be published. Required fields are marked *