PHPTALは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で書いてしまうと、タイポによるイージーミスがエラーになることが多々ありました。そこだけご注意を。