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 関数の宣言が間違っていました。

これは私のために働いた:

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 に答える
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 に答える