我正在用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
我的Twig功能:
$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')) ;
`
我以前从未使用过Twig,但闭包似乎是用参数调用的,但您在闭包中没有定义任何参数。试试这个:
$url_for_static = new Twig_SimpleFunction('static_folder', function ($arg) {
var_dump($arg);
$static_folder = "./static" ;
return $static_folder ;
});
我知道这个答案真的很晚了,但我终于找到了解决问题的方法。我的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')) ;