/** * Compile firewall code * * @package las * @version 1.0 * * @param string $code input firewall code * @param mixed $name name to save file * @param boolean $eval if true parse php code */ public static function compile($code, $name = null, $eval = false) { $compiler = new \Phalcon\Mvc\View\Engine\Volt\Compiler(); $compiler->addExtension(new \Las\Extension\VoltStaticFunctions()); $compiler->addExtension(new \Las\Extension\VoltPHPFunctions()); $php = $compiler->compileString($code); if ($name) { $dir = ROOT_PATH . '/app/common/cache/volt/app/cli/views/'; if (!is_dir($dir)) { $old = umask(0); mkdir($dir, 0777, true); umask($old); } file_put_contents($dir . $name . '.phtml', $php); } return $eval ? eval('; ?>' . $php) : $php; }
public function testVoltUsersFilters() { $volt = new \Phalcon\Mvc\View\Engine\Volt\Compiler(); //Single string filter $volt->addFilter('reverse', 'strrev'); //Filter with closure $volt->addFilter('separate', function ($arguments, $exprArguments) { return 'explode(",", ' . $arguments . ')'; }); $compilation = $volt->compileString('{{ "hello"|reverse }}'); $this->assertEquals($compilation, '<?php echo strrev(\'hello\'); ?>'); $compilation = $volt->compileString('{{ "1,2,3,4"|separate }}'); $this->assertEquals($compilation, '<?php echo explode(",", \'1,2,3,4\'); ?>'); }
<?php //Create a compiler $compiler = new \Phalcon\Mvc\View\Engine\Volt\Compiler(); //Optionally add some options $compiler->setOptions(array()); //Compile a template string returning PHP code echo $compiler->compileString('{{ "hello" }}'); //Compile a template in a file specifying the destination file $compiler->compileFile('layouts/main.volt', 'cache/layouts/main.volt.php'); //Compile a template in a file based on the options passed to the compiler $compiler->compile('layouts/main.volt'); //Require the compiled templated (optional) require $compiler->getCompiledPath();