この質問の詳細に入る前に、私はこれがこれまでに行われたのを見たことがないことを指摘したいと思います。実際にできるかどうか、できる場合はどうすればよいかを知りたいと思います。
私は現在、テンプレート ローダーを使用しています。これを作成するために、HAML ファイル形式を少し変更し、いくつかの論理演算子 (主にループ) で拡張することにしました。これを効率的に行うには、パラメーターのリストをテンプレート パーサーに渡す必要があります。可能であれば、これは避けたいと思います。代替案についてブレインストーミングを行っているときに、関数が呼び出されたスコープを参照できるかもしれないというアイデアが浮かびました。
現在、次のようにファイルのテンプレート パーサーを呼び出しています。をルートとtest()
します。
function test() {
$q = $UserModel->tether($userID)->fetchPermissions();
Util::Templating()->parse("file.haml");
}
私が避けようとしているのは、非常に長い配列を 2 番目のパラメーターとして渡さずに $q にアクセスできるようにすることです。私の最初の考えは、独自のスコープを持つのではなくparse()
、最初に呼び出されたスコープ (ここでは 内 ) を継承する方法があるかもしれないというものでした。test
これを管理する方法はありますか? もしそうなら、それはどのくらい効率的ですか?