fenom/docs/ru/configuration.md

4.7 KiB
Raw Blame History

Настройка

Configure

Кеш шаблонов

$fenom->setCompileDir($dir);

Задает имя каталога, в котором хранятся компилированные шаблоны. По умолчанию это /tmp. Каталог дожен быть доступен на запись.

Параметры обработчика

Установка параметров через фабрику

$fenom = Fenom::factory($tpl_dir, $compile_dir, $options);

Установка параметров через метод

$fenom->setOptions($options);

В обоих случаях аргумет $options может быть массивом или битовой маской. В массиве ключем должно быть название параметра, а ключем — булевый флаг true (активировать) или false (деактивировать). Битавая маска должна состоять из занчений констант из таблице ниже

Название параметра Константа Описание Эффект
disable_methods Fenom::DENY_METHODS отключает воззможность вызова методов в шаблоне
disable_native_funcs Fenom::DENY_NATIVE_FUNCS отключает возможность использования фунций PHP, за исключением разрешенных
auto_reload Fenom::AUTO_RELOAD автоматически пересобирать кеш шаблона если шаблон изменился понижает производительность
force_compile Fenom::FORCE_COMPILE каждый раз пересобирать кеш шаблонов (рекоммендуется только для отладки) очень сильно понижает производительность
disable_cache Fenom::DISABLE_CACHE не кешировать компилированный шаблон эпично понижает производительность
force_include Fenom::FORCE_INCLUDE стараться по возможности вставить код дочернего шаблона в родительский при подключении шаблона повышает производительность, увеличивает размер файлов в кеше, уменьшает количество файлов в кеше
auto_escape Fenom::AUTO_ESCAPE автоматически экранировать HTML сущности при выводе переменных в шаблон понижает производительность
force_verify Fenom::FORCE_VERIFY автоматически проверять существование переменной перед использованием в шаблоне понижает производительность
disable_statics Fenom::DENY_STATICS отключает воззможность вызова статических методов в шаблоне
strip Fenom::AUTO_STRIP удаляет лишиние пробелы в шаблоне уменьшает размер кеша
$fenom->setOptions(array(
    "compile_check" => true,
    "force_include" => true
));
// тоже самое что и
$fenom->setOptions(Fenom::AUTO_RELOAD | Fenom::FORCE_INCLUDE);

Замечание По умолчанию все параметры деактивированы.

Extends

Template providers

Бывает так что шаблны не хранятся на файловой сиситеме, а хранятся в некотором хранилище, например, в базе данных MySQL. В этом случае шаблонизатору нужно описать как забирать шаблоны из хранилища, как проверять дату изменения шаблона и где хранить кеш шаблонов (опционально). Эту задачу берут на себя Providers, это объекты реальзующие интерфейс Fenom\ProviderInterface.

Callbacks and filters

Before compile callback

$fenom->addPreFilter(function () { /* ... */ });

Tag filter callback

Filter callback

After compile callback