0

我正在用 PHP 编写一个用于学校工作的应用程序,并且我正在单独使用 Twig 模板引擎(没有框架)。

我有一个文件在我的项目中初始化 Twig,我在所有需要它的文件中使用它。

include_once('./Twig/lib/Twig/Autoloader.php'); 
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('./templates');    
$twig = new Twig_Environment($loader, array(
    'cache' => false,
    'charset' => 'utf-8'
));

我有一个 Twig 函数,它返回我的静态文件文件夹的路径。但是当我运行时addFunction($my_function),出现以下错误:

警告:{closure}() 缺少参数 1

我的树枝功能:

$url_for_static = new Twig_SimpleFunction('static_folder', function () {
$static_folder = "./static" ;
    return $static_folder ;
});

$twig->addFunction($url_for_static);

我知道这个答案真的很晚,但我终于找到了解决问题的方法。我的 Twig 函数声明是错误的。 这对我有用:

`

function blank_space($size=100) {       
    echo "<div class='grid-". $size ." hidden'> <span> hidden </span> </div>" ;
}
$twig->addFunction('blank_space', new Twig_Function_Function('blank_space')) ;

`

4

2 回答 2

0

我以前从未使用过 Twig,但似乎闭包是用参数调用的,但您没有在闭包中定义任何参数。尝试这个:

$url_for_static = new Twig_SimpleFunction('static_folder', function ($arg) {
    var_dump($arg);
    $static_folder = "./static" ;
    return $static_folder ;
});
于 2013-02-20T19:24:30.593 回答
0

我知道这个答案真的很晚,但我终于找到了解决问题的方法。我的 Twig 函数声明是错误的。

这对我有用:

function blank_space($size=100) { 
    echo "<div class='grid-". $size ." hidden'> <span> hidden </span> </div>" ; 
} 

$twig->addFunction('blank_space', new Twig_Function_Function('blank_space')) ;
于 2013-03-05T13:56:35.800 回答