読者です 読者をやめる 読者になる 読者になる

PHPTALはPHP互換でもある

PHP

XHTMLと完全に構文互換なPHPTALですが、実はテンプレートの中にPHPタグを入れることもできます。

    <h1 tal:content="title">my title</h1>
    <?php echo $ctx->helpers->Html->link(
        sprintf(
            __("List %s", true),
            __("Posts", true)
        ),
        array("action" => "index")
    );?>

$ctx はレンダリング時にテンプレートに流し込まれた変数がぜんぶ入っている場所です。
あまり美しくはないですが、PHPタグだけで構成したTALテンプレートは、CakePHPやYii、CodeIgniterなどの、PHPでビューを書くフレームワークとの互換性がある、といえますね。変数へのアクセス方法は少し癖がありますが、どうしてもTALと合わないビューヘルパを入れたい場所に、汚いのをわかって入れるのは、アリだと思います。

ただし、間接的にPHPシンタックスが混入するので、そこはテストでカバーしていない場所と認識しておかないといけません。PHPTALならXHTMLバリッドであるだけで、中括弧の対応が合っていないなどの心配をしなくて済みますが、PHPで書いてしまうと、タイポによるイージーミスがエラーになることが多々ありました。そこだけご注意を。