PhalconについてくるVoltについて俺的めも
Voltテンプレート
PHPの関数とかをテンプレートで使いたいことがよくあるけど
http://phalcon-docs-ja.readthedocs.io/ja/latest/reference/volt.html#id4
Voltではここで定義されてるのしか利用できない。
以下のようにaddFunctionしてやると使えるようになる。
$di->set('view', function () use($di) {
$view = new View();
$view->setViewsDir(__DIR__ . '/views/');
$view->registerEngines(array(
'.volt' => function ($view, $di) {
$volt = new View\Engine\Volt($view, $di);
$volt->setOptions(array(
'compiledPath' => __DIR__ . '/cache/',
'compiledSeparator' => '_',
'compileAlways' => true
));
$compiler = $volt->getCompiler();
$compiler->addFunction(
'mb_substring',
function ($resolvedArgs, $exprArgs) use ($di) {
return 'mb_substr(' . $resolvedArgs . ')';
}
);
return $volt;
},
'.phtml' => 'Phalcon\Mvc\View\Engine\Php'
));
return $view;
});
voltのほうで
{{ mb_substring('あいうえお', 0, 2) }}
みたいな感じで使えるようになる。
こんなに簡単に関数はできるというのに。。。