/** * undocumented function * * @param Compiler * @return void **/ public function __construct(Compiler $compiler) { $this->compiler = $compiler; foreach ($this->filters as $volt => $func) { if (is_string($func)) { $compiler->addFilter($volt, $func); } else { $compiler->addFilter($volt, $this->{$func}); } } }
/** * @param VoltCompiler $compiler */ public static function install($compiler) { foreach (get_class_methods(get_called_class()) as $method) { if ($method != __METHOD__) { $compiler->addFilter(Text::uncamelize($method), function ($resolvedArgs, $exprArgs) use($method) { return get_called_class() . '::' . $method . '(' . $resolvedArgs . ')'; }); } } }
public function testVoltUsersFilters() { $volt = new 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\'); ?>'); }
public function testVoltUsersFilters() { $this->specify("Custom filters should work", function () { $volt = new 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 }}'); expect($compilation)->equals('<?= strrev(\'hello\') ?>'); $compilation = $volt->compileString('{{ "1,2,3,4"|separate }}'); expect($compilation)->equals('<?= explode(",", \'1,2,3,4\') ?>'); }); }