次のようなrender_haml_partial
phpHaml の既存のメソッドと同様に、グローバル メソッドを作成できます。display_haml
function render_haml_partial($sFilename, $aVariables = array(), $sTmp = true, $bGPSSC = false)
{
$sPath = realpath($sFilename);
$haml = new HamlParser(dirname($sPath), $sTmp);
$haml->append($GLOBALS);
if ($bGPSSC)
{
$haml->append($_GET);
$haml->append($_POST);
$haml->append($_SESSION);
$haml->append($_SERVER);
$haml->append($_COOKIE);
}
$haml->append($aVariables);
return $haml->fetch($sFilename);
}
このメソッドを phpHaml のHamlParser.class.php
ファイルに配置して、すべてのテンプレートで使用できるようにすることができます。
これと の唯一の違いは、最後ではなくdisplay_haml
呼び出して結果を返すため、呼び出し元のテンプレートにその場で挿入できることです。fetch
display
次に、PHP/HAML テンプレートで次のように使用します。
= render_haml_template("path to partial")
これは、Rails/HAML 構文に非常に似ています。
= render :partial => 'path to partial'
display_haml
直接使用しても、呼び出し元に結果を返すのではなく、テンプレートを直接出力にレンダリングするため、まったく同じ効果がないことに注意してください。したがって、次のことができます。
- display_haml("path to partial")
しかし、これはレンダリングの結果をキャプチャしません。
私は、phpHaml を十分に気にかけている誰かが、render_haml_partial
最終的にそのようなものまたは類似のものを追加する可能性があると推測しています。