63 lines
1.2 KiB
PHP
63 lines
1.2 KiB
PHP
<?php
|
||||
|
|
|
|||
|
|
namespace Umpirsky\Twig\Extension;
|
|||
|
|
|
|||
|
|
use Twig_Extension;
|
|||
|
|
use Twig_SimpleFunction;
|
|||
|
|
use BadFunctionCallException;
|
|||
|
|
|
|||
|
|
class PhpFunctionExtension extends Twig_Extension
|
|||
|
|
{
|
|||
|
|
private $functions = array(
|
|||
|
|
'uniqid',
|
|||
|
|
'floor',
|
|||
|
|
'ceil',
|
|||
|
|
'addslashes',
|
|||
|
|
'chr',
|
|||
|
|
'chunk_split',
|
|||
|
|
'convert_uudecode',
|
|||
|
|
'crc32',
|
|||
|
|
'crypt',
|
|||
|
|
'hex2bin',
|
|||
|
|
'md5',
|
|||
|
|
'sha1',
|
|||
|
|
'strpos',
|
|||
|
|
'strrpos',
|
|||
|
|
'ucwords',
|
|||
|
|
'wordwrap',
|
|||
|
|
'gettype',
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
public function __construct(array $functions = array())
|
|||
|
|
{
|
|||
|
|
if ($functions) {
|
|||
|
|
$this->allowFunctions($functions);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function getFunctions()
|
|||
|
|
{
|
|||
|
|
$twigFunctions = array();
|
|||
|
|
|
|||
|
|
foreach ($this->functions as $function) {
|
|||
|
|
$twigFunctions[] = new Twig_SimpleFunction($function, $function);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return $twigFunctions;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function allowFunction($function)
|
|||
|
|
{
|
|||
|
|
$this->functions[] = $function;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function allowFunctions(array $functions)
|
|||
|
|
{
|
|||
|
|
$this->functions = $functions;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function getName()
|
|||
|
|
{
|
|||
|
|
return 'php_function';
|
|||
|
|
}
|
|||
|
|
}
|