Extra add-ons pack for Fenom template engine.
Composer package:
{"fenom/extra": "dev-master"}
. See on Packagist.org
The library is a collection of add-ons. Each add-on present as trait. This realization allow create your template engine with custom collection of add-ons.
Also library contain class Fenom\Extra
- template engine which include all add-ons and ready out of the box.
Use class Fenom\Extra
instead of Fenom
:
$fenom = Fenom\Extra::factory($template_dir, $compiled_dir, $options);
Or combine your own templater:
For example:
class Templater extends \Fenom {
use \Fenom\StorageTrait, // add internal storage of variables
\Fenom\LoaderTrait, // allow add yours loaders for modifiers and tags
\Fenom\PluginLoaderTrait; // add loader for modifiers and tags in Smarty-like style
// ...
}
All add-ons implemented in class \Fenom\Extra
.
Add-on: Fenom\StorageTrait
<?php
$fenom->assign("var_name", $value);
$fenom->assignByRef("var_name", $value);
$fenom->append("var_name", $value);
$fenom->prepend("var_name", $value);
$vars = $fenom->getVars();
$fenom->assignVars($vars);
$fenom->resetVars();
$fenom->pipe($template_name, $callback);
$fenom->fetch($template_name);
$fenom->display($template_name);
Add-on: Fenom\LoaderTrait
Add-on: Fenom\SimpleLoaderTrait
Require: Fenom\LoaderTrait
<?php
$fenom->addPluginsDir($path);
Add-on: Fenom\SmartyTrait
Require: Fenom\SimpleLoaderTrait
<?php
$fenom->setSmartySupport(); // enable smarty syntax support
Supported:
{func var="test `$foo[0]` test"}
$smarty
(without section
data)assign
foreach
section
math
Todo:
{func var="test {counter} test"}
$smarty
with section
data