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っぽくなってないか…(^^;