1

独自のテンプレート システムを作成しようとしていますが、この時点で行き詰っています。やり方がわかりません。

現在、テンプレート ファイルには次のものがあります。

@list $users => $user:
    <li>{{$user}}</li>
@endlist

$this->users 変数にユーザーを表示する foreach として機能させたいと考えています。

これを試しましたが、ここで立ち往生しています。誰かが私を助けてくれることを願っています:-)

これまでの私のコード(動作しません):

preg_match_all("/\@list(.*)\=\>(.*)\:/is", $e, $hmm);

  foreach ( $hmm as $hm):
     print_r($hm);exit;
     $eval = 'foreach ('.$hm[1].' as '.$hm[2].'):';

     eval($eval);
     echo ":P";

  endforeach;
4

2 に答える 2

1

怖がらせるつもりはありませんが、Twig_Lexer を見てください。

https://github.com/fabpot/Twig/blob/master/lib/Twig/Lexer.php Twig 構文を独自の言語に変換するトークン パーサーです。

ただし、当面の要件に関しては、これはForコンパイルに使用するノードforeach loopです。

https://github.com/fabpot/Twig/blob/master/lib/Twig/Node/For.php

正確にコピーしなくても、 を使用しても、配列を使用して Twig 変数を格納evalするなど、その方法についての良い手がかりが得られるはずです。$context

于 2013-08-07T08:26:00.730 に答える