Настройка ========= ## Configure ### Кеш шаблонов ```php $fenom->setCompileDir($dir); ``` Задает имя каталога, в котором хранятся компилированные шаблоны. По умолчанию это `/tmp`. Каталог дожен быть доступен на запись. ### Параметры обработчика Установка параметров через фабрику ```php $fenom = Fenom::factory($tpl_dir, $compile_dir, $options); ``` Установка параметров через метод ```php $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` | удаляет лишиние пробелы в шаблоне | уменьшает размер кеша | ```php $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 ```php $fenom->addPreFilter(function () { /* ... */ }); ``` #### Tag filter callback #### Filter callback #### After compile callback