Програмиране на PHP. Седмото издание. Работа с шаблони. Разработване на собствения си и да използват съществуващите решения.
В този брой ще говорим за такива неща като шаблони (шаблони) - Какво има, защо е необходима и защо почти всички те се използват. Но най-напред, както обикновено, малко новини.
И новините са, че PHP 4.1.0 версия. създаването, за което говорих в предишната версия излезе. Истината, докато тя е достъпна само под формата на изходния код (т.е. прозорци двоичните файлове в раздела за сваляне на www.php.net търсят още безполезни). Между другото, наред с други неща, потребителите на PHP за платформата Windows ще оценят факта, че PHP разработчиците в тази версия говорят за тази версия, като значително по-бързо и по-стабилно raboat под Windows. Пълен списък с промените можете да намерите в официалното съобщение (на английски). Задайте нова версия на PHP на www.php.net и www.php4win.com.
Сега обратно към предмета на тази версия.
Какви са шаблони
Както вече знаете (за това, което беше казано в първото издание), PHP - вдлъбнат (закрепен) език. Т.е. кода му е поставен вътре в HTML страница, и се занимава с производство на динамично съдържание. Един прост пример:
По този начин, шаблони - това е механизъм, който ще ви позволи да повече или по-малко се отървете от здраво свързване на вашия код за вид на вашия сайт и да ви помогне да се улесни задачата за създаване на динамичен код HTML страница. Основната идея на този механизъм е да има множество "филийки" на HTML кода, който вие, като тухли в конструктор, събиране на всяка страница на вашия сайт.
Най-простият шаблони
Най-лесният начин да се използва tempates - е да се създаде набор от променливи, които съдържат части от HTML код. Код на самата страница в това самостоятелно участие комбиниране на HTML код на тези променливи, необходимите данни, за да се получи резултат. Нека да видим, например, може да изглежда като генерирането на една и съща страница с помощта на прости шаблони. Ето, аз не използвате някоя от общия пакет, защото аз просто искам да ви покажа основната идея.
templates.php файл sodezhit описание на всички необходими шаблони. Ако се вгледате в съдържанието на променливите, описани в този файл, вие ще забележите, че това е само една и съща страница, но разделен на много произведения, между които на данни трябва да бъде поставена.
Файлът index.php съдържа в самия код на страницата строителство
Разбира се, този код изглежда просто ужасно, и така (надявам се) никой не го прави. Но основната идея на "събиране" HTML страница от парчетата код, този пример илюстрира доста добре.
Всъщност, основният проблем на горния код е, че тя не ви позволява напълно да се отървете от HTML кода вътре кода на PHP, защото тук всяка част от HTML код се съхранява в отделна променлива. Представете си какво би трябвало да бъде на тези променливи, за да повече или по-малко сложен страница. И, освен това, въпреки факта, че на HTML кода директно поставя в отделен файл, но връзката му с резултатите от PHP код кодиран в кода на PHP (като всички асоциация HTML и PHP код е кодиран).
Повечето от тези проблеми могат да бъдат решени с помощта на проста система на замествания на данни в HTML шаблоните. Един от тях ще бъдат обсъдени в следващия раздел.
Използване на шаблони с данни заместване
Основната разлика между системи, базирани на заместване на данните, е, че те ви позволяват да се използва специфичен синтаксис, за да се определи точката на вмъкване на данни в HTML шаблоните. В действителност всички системи работят с шаблон на базата на този принцип, и единственото нещо, което ги отличава - синтаксиса използва за определяне на шаблони и набора от възможности, предоставени от системата.
Но първо, кратко описание на синтаксиса за описване на шаблоните, използвани в тази система. Аз ще го отведе до EBNF система, подобна на, и след това да даде необходимите обяснения.
"Ключ" за смяна:
Ключът тук е наречен замяната на текста на шаблона, които в последствие ще бъде заменен от някои от данните се подават на функцията - процесорни шаблоните. Тя се състои от две основни части: име (уникален в рамките на шаблона) и по желание стандартна стойност. Тя ще се използва в случай, че обработването на шаблона не е била определена стойността за него. Ако стойността по подразбиране също не е посочен - този ключ ще бъде заменен от празен низ.
Стойността по подразбиране може да се използва и да се уточни специален режим на работа. По-долу са три различни типа на синтаксиса, които са разрешени за стойностите по подразбиране:
Както можете да видите, вида на обработка на стойността по подразбиране, определен в първи символ.
Ако това е знак "#". След това цялата стойност се счита за "поставете в резултат на обработката на шаблона с името с предварително зададени параметри, като стойностите за заместване, че от ключово значение. "Т.е. шаблони манипулатор се извиква рекурсивно да tepmleyta обработка с даденото име и уточни списъка с данни за заместване и обработване на резултатите от шаблоните ще бъдат използвани като стойност за смяна.
Ако това е знак "!". преработката, подобен на предишния, с единствената разлика, че вместо да се обадите шаблони манипулатор произведени кол потребителски функции с даденото име и те като параметър предава масив от данни е определено по този начин (структурата на масив е същият, както при повечето функции за обработка на шаблони ). Функцията за работа са използвани като стойност за смяна.
Символите са специално значение могат да бъдат вмъкнати в текста, като се използват техните бягство последователности:
Излизане символи, които имат специално значение
Извън ключовете за заместване
Сега нека видим как можем да генерира същата проста страница с помощта на функцията по-горе.
templates.php файл sodezhit описание на всички необходими шаблони. Много подобна на предишната версия на файла, но тук в шаблона използва синтаксиса описано по-горе, за да вмъкнете текст.
Файлът index.php съдържа в самия код на страницата строителство
Както можете да видите - кодът е много по-компактен и логично с използването на шаблони. А освен това, дори такива прости шаблони система за обработка на значително опростява работата си. Можете да получите възможност да контролира програма логика отделно и независимо - визуалната си част, това, което ние всъщност исках.
Системи с шаблон
Както казах и преди - дадени от мен в предишния раздел, функцията е твърде лесно да се обработва шаблони, за да претендира за ролята на истински система, която е подходяща за практическа употреба. Но в интернет можете да намерите много подобни системи с различни степени на "подмамени". Ще цитирам само някои от тях:
В исторически план една от първите такива системи е FastTemplate. Тя е написана за PHP3 и за сега, изглежда, вече не се поддържа. Всички останали са различни по сложност и сила на синтаксиса, подкрепени в рамките temleytov, както и наличието на допълнителни услуги.
Най-мощната система в момента се очертава като Smarty. В допълнение към достатъчно мощен и гъвкав език (както и разработена на синтаксиса на език, различен от обаждане по мое мнение, е просто невъзможно), той също така е доволен от функциите, които го отличават от общия брой на системи за обработка на шаблони на разположение в момента. Най-забележителна характеристика е способността му да "компилация" от шаблони директно в PHP скриптове! Т.е. След провеждане на анализирането на шаблона Smarty генерира PHP скрипт, който по-късно върши същата работа много по-бързо.
Защото аз самият не използвате всеки от шаблоните, системи за обработка, които предпочитат XML технологии, аз ви даде възможност да се опита да сравни различните системи и изберете този, който е най-подходящ за вас.
Напомням ви, че можете да изтеглите изходния код за всички примери в тази статия като ZIP архив.
заключение
В бъдеще ние ще разгледа алтернативни системи за шаблони - XML технологии и XSLT. Тези технологии са W3C стандарти и следователно имат по-силна подкрепа, много документация и примери, на голям брой програми за работа с данните в тези формати, тяхното създаване, тестване и т.н. PHP също така има разширения, за да работят с тези технологии и въпроси buduyuschih, които наблюдаваме, как можете да използвате тези технологии за генериране на динамични уеб страници.
Свързани статии