0.10.0のインジェクション

大体以下のようなインジェクションを考えている…。
例えば、アクションクラス'Foo'を実装するとする。アクションクラスは特定のクラスのサブクラスである必要はない。

class Foo
{
    // リクエストパラメータのインジェクション
    var $name;
    var $name_kana;
    // テンプレートに設定する値
    var $result;
    // オブジェクトのインジェクション
    var $session;
    var $helper;
    var $smarty;
    // 使用テンプレート名のインジェクション
    var $template;
    function execute()
    {
        // セッションに設定
        $this->session->set('name', $this->name);
        // テンプレートに設定する値を編集
        $this->result = $this->name . ' ' . $this->name_kana;
        // 使用するテンプレートを変更
        $this->template = 'Bar.tpl';
    }
}
  • リクエストパラメータはメンバ変数にインジェクションされる
  • メンバ変数はそのままテンプレートに変数名をキーにして設定される
  • $sessionというメンバ変数が存在する場合、Moony_Sessionのインスタンスがインジェクションされる
  • $helperというメンバ変数が存在する場合、Moony_Helperのインスタンスがインジェクションされる
  • $smartyというメンバ変数が存在する場合、Smartyインスタンスがインジェクションされる
  • $templateというメンバ変数が存在する場合、デフォルトで使用されるテンプレート名がインジェクションされる
    • 値を変更すれば該当するテンプレートファイルがレンダリングに使用される

なんかMapleっぽくなってないか…(^^;