Они также используют поддержку прямого включения шаблонов вместо использования маркеров. Выбор между этими системами шаблонов в основном является предметом личного выбора. Критерием предпочтения может быть синтаксис системы. Так, система 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 является то, что они визуально не отображаются в браузерах, которые считают их нераспознанными тегами.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Проэктирование. Часть Двеннадцатая.
02-07-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Проэктирование. Часть Одиннадцатая. | PHP. Проэктирование. Часть Триннадцатая. |