3.0 KiB
Setup
Configure
Template cache
$fenom->setCompileDir($dir);
This method set the name of the directory where template caches are stored. By default this is /tmp
. This directory must be writeable.
Template settings
// set options using factory
$fenom = Fenom::factory($tpl_dir, $compile_dir, $options);
// or inline using method setOptions
$fenom->setOptions($options);
Options may by associative array like 'option_name' => true
or bitwise mask.
Option name | Constant | Description | Affect |
---|---|---|---|
disable_methods | Fenom::DENY_METHODS |
disable calling methods of objects in templates. | |
disable_native_funcs | Fenom::DENY_NATIVE_FUNCS |
disable calling native function in templates, except allowed. | |
auto_reload | Fenom::AUTO_RELOAD |
reload template if source will be changed | decreases performance |
force_compile | Fenom::FORCE_COMPILE |
recompile template every time when the template renders | very decreases performance |
disable_cache | Fenom::DISABLE_CACHE |
disable compile cache | greatly decreases performance |
force_include | Fenom::FORCE_INCLUDE |
paste template body instead of include-tag | increases performance, increases cache size |
auto_escape | Fenom::AUTO_ESCAPE |
html-escape each variables outputs | decreases performance |
force_verify | Fenom::FORCE_VERIFY |
check existence every used variable | decreases performance |
| disable_statics | Fenom::DENY_STATICS
| disable calling static methods in templates. | |
| strip | Fenom::AUTO_STRIP
| strip all whitespaces in templates. | decrease cache size |
$fenom->setOptions(array(
"force_compile" => true,
"force_include" => true
));
// same
$fenom->setOptions(Fenom::AUTO_RELOAD | Fenom::FORCE_INCLUDE);
Note By default all options disabled
Extends
Template providers
Бывает так что шаблны не хранятся на файловой сиситеме, а хранятся в некотором хранилище, например, в базе данных MySQL.
В этом случае шаблонизатору нужно описать как забирать шаблоны из хранилища, как проверять дату изменения шаблона и где хранить кеш шаблонов (опционально).
Эту задачу берут на себя Providers, это объекты реальзующие интерфейс Fenom\ProviderInterface
.
Callbacks and filters
Before compile callback
$fenom->addPreFilter(function () { /* ... */ });