0

MyView.php という単純なビュー ファイルがあるとします。

<!DOCTYPE html>
<html>
    <head>
        <title><?=$title?></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
                    <?=$cotent?>
    </body>
</html>

そして、私は自分のコードに次のメソッドを持っていますrender():

<?
function render($data)
{

}
?>

そこから呼び出して変数を渡す必要がありますMyView.php$title$cotent

に置き換えるだけでそれを行う方法があることを私は知ってい<title><?=$title?></title>ます。<title>{TITLE}</title>render($data)MyView.phppreg_replace(){BLAH}$blah

これを行う他の簡単な方法はありますか?

フレームワークは使用しないものとします。すべてをゼロから。

4

1 に答える 1

3

はい。私の個人的なライブラリから:

function renderTemplate($tmpl, $__vars=array()) {
    extract($__vars, EXTR_SKIP);
    include($tmpl);
}

renderTemplate("MyView.php", array( "title" => "My Title", "content" => "My Content" ));

文字列にレンダリングしたい場合は、少し変更できます。

function renderTemplateToString($tmpl, $__vars=array()) {
    ob_start();
    extract($__vars, EXTR_SKIP);
    include($tmpl);
    return ob_get_clean();
}

renderTemplate()一度しか呼び出していない場合でも、独自の関数に保持する必要があることに注意してください。関数の変数スコープを使用して、テンプレート変数を他の変数から分離しています。

于 2013-03-13T22:07:58.100 に答える