ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

PHP. Проэктирование. Часть Двеннадцатая.


02-07-2015

Они также используют поддержку прямого включения шаблонов вместо использования маркеров. Выбор между этими системами шаблонов в основном является предметом личного выбора. Критерием предпочтения может быть синтаксис системы. Так, система TemplatePower считается в шесть раз более быстрой, чем система FastTemplate. Естественно, лучше всего воспользоваться шаблонным классом PHPLib.
В результате использования дополнительного уровня, хранящего раздельно коды HTML и PHP, получаем выигрыш в производительности. Загрузка каждой страницы требует анализа шаблонов и заполнения значений, полученных для маркеров. Это может существенно повлиять на время, необходимое для сборки страницы. Некоторые данные необходимо регенерировать при каждом запросе, как, например, содержимое покупательской корзины, но большая часть информации на Web-узле является статической. Таким образом, при кэшировании проанализированных шаблонов мы экономим массу времени.
Кэш-память - это временная быстрая память, объем которой ограничен, а данные, которые размещаются в ней, являются временными. Применение кэш-памяти опирается на идею, что текущий запрос данных предполагает другой такой запрос аналогичных данных в ближайшем будущем. Если приложение ведет себя таким образом и объема кэш-памяти достаточно, ее использование позволит существенно повысить производительность.
Класс cachedFastTemplate добавляет в первоначальную реализацию PHP FastTemplate использование кэширования. Два новых метода позволяют осуществить чтение и запись в текстовые файлы, сохраненные в каталоге /tmp. Метод write_cache сохраняет полностью проанализированные шаблоны в каталоге, указанном после имени узла Web-сервера. Метод is_cached загружает содержимое из каталога, если шаблон прежде подвергался кэшированию. Предназначение этого класса заключается в том, что он является точечным замещением первоначального класса. При этом не надо модифицировать ваши шаблоны. Изменения, которые необходимо внести в PHP-сценарии, являются минимальными и будут работать даже без модификации, но не будут кэшироваться.
Существуют и другие шаблонные системы, использующие кэширование, но про­мышленным решением является система Smarty, компилирующая шаблоны в исходный PHP-код. Файл шаблонов, отредактированный разработчиками интерфейса, анализируется только один раз. Вызовы шаблонов заставляют машину PHP запустить файл .php. Это снижает нагрузку, вызванную запуском анализатора, написанного на PHP.
Компиляция сценариев происходит во время выполнения сценария при отсутствии непосредственных команд в сценарии. Если со страницы делается запрос еще неоткомпилированного шаблона, Smarty компилирует его. А если в шаблон вносятся изменения после этой компиляции, Smarty перекомпилирует его во время следующего вызова этого шаблона.
Дополнительно система Smarty снабжена возможностью кэширования, увеличивающей производительность статических страниц. Для страниц со статическим содержимым Smarty преобразует шаблон в текстовый файл. Как и в случае с другими статическими реализациями, здесь можно задавать срок хранения, после которого файл регенерируется. Шаблонная система Smarty предполагает более чем простое замещение маркеров и включает также усовершенствованную логику управления наподобие операторов "if-else". Это позволяет разработчикам интерфейсов принимать простейшие логические решения, не беспокоя при этом программистов. Эта система также включает сопровождение циклов и функций, предназначенных для включения других шаблонов.
Шаблонные системы хорошо подходят для определенной категории людей, иначе они бы не приобрели такую популярность. Система FastTemplate отличается простотой, и, конечно же, любой, имеющий опыт работы с HTML-кодом, всегда сможет организовать работу с маркерами. Такие сложные решения, как Smarty, ненамного отличаются от PHP по сложности, но это не дает повода усомниться в пользе данной системы. Этот подход, конечно, может понравиться многим программистам, и внимательное общение с новичками позволит им избегать работы с более сложным синтаксисом.
Большинство из этих шаблонных систем в качестве маркера определенного значения, которое будет позднее замещено PHP-сценарием, использует {name}. Ненамного сложнее написать <?php=$name?>. Наибольшим недостатком использования тегов PHP является то, что они визуально не отображаются в браузерах, которые считают их нераспознанными тегами.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Проэктирование. Часть Одиннадцатая. PHP. Проэктирование. Часть Триннадцатая.