Посты с тегом php
14
января
2008

Blitz Templates

Сегодняшний информационный повод — открытие шаблонизатора Blitz Templates, который ранее ускользал от моего внимания. Из всех парсеров темплейтов, с которыми я имел дело, это первый, реализованный в виде модуля интерпретатора PHP. Как не сложно догадаться, это радикально-положительным образом сказывается на производительности системы, но вначале я бы хотел высказаться о другом его свойстве.

Как известно, задачей любого парсера темплейтов является полумифическое отделение кода (и данных) от оформления страниц. Я говорю полумифического, т.к. в действительности ни один развитый шаблонизатор не может похвастаться реализованной в полной мере такой возможностью. Когда требования к функциональности шаблонов возрастают, их синтаксис усложняется, постепенно перерастая в специализированный язык. Показательный пример тому — Smarty и многие другие распространенные движки темплейтов. Строго говоря, сам PHP можно отнести к категории очень навороченного генератора страниц.

В итоге, одним из основных критериев при выборе шаблонизатора становится не качество (или степень) отделения кода от оформления, а скорее читаемость этого кода — достаточно субъективная характеристика, которая сильно зависит не только от шаблонизатора, но и от стиля кодинга. Показательный пример: XSLT является одним из наиболее идеологически-грамотных шаблонизаторов, тем не менее он сейчас пользуется не самой большой популярностью. Одна из причин тому — очень навороченный синтаксис. Читать далее →

09
января
2008

Обработка сообщений об ошибках PHP

В заметке «Работа над ошибками» я уже упоминал о том, насколько неуместно на страницах сайта могут выглядеть сообщения об ошибках, выдаваемые интерпретатором PHP. Многие разработчики зачастую не уделяют должного внимания тому, чтобы избавить посетителей сайтов от необходимости лицезреть подобный мусор. Вероятно, самой массовой на то причиной (после лени, конечно) является вера в идеальность алгоритмов и абсолютную непотопляемость серверов БД. Тем не менее, одним из показателей грамотной реализации и внедрения системы является контролируемость вывода всех служебных сообщений интерпретатора.

Самый простой способ для этого — использовать функцию error_reporting() (или параметр конфигурационного файла PHP с аналогичным названием). С ее помощью можно, например, полностью отключить вывод ошибок в production версии скрипта, оставив их видимыми только для разработчика. Но это не самый оптимальный подход, т.к. он лишает возможности отслеживать исключительные ситуации в работе «боевой» версии.

Наиболее грамотное решение — перенаправлять все сообщения об ошибках в лог. Сделать это можно множеством способов. Один из них — тривиальный, с помощью set_error_handler() и других стандартных функций для обработки ошибок. Другой — через конфигурационные файлы Apache и PHP. На последнем я бы хотел остановиться более подробно. Читать далее →