私のPHP(Zend Framework)プロジェクトをinjection dependence
に設定しようとしています。これまでのところ、私はモデルをインスタンス化するとき、私はそのような私のモデルにtable
とview
(データベースビュー)を渡します。クラスメンバー変数を動的に構築する
$table = new My_Table();
$view = new My_View();
$model = new My_Model($table, $view);
すべての私のモデル構築の世話を同じクラス、メッセージ処理を拡張し、フォームのゲッターをモデルとやり取りします。
今私はmodel
にmodel
を注入しなければなりません。私はこれを行う静的静的方法を探していました。私のモデルの親クラスでは、アプリケーションのブートストラップで呼び出される静的メソッドinject
を追加しました。 key => value
の形式で2つの文字列を渡します。ここでkeyはモデルで作成する必要がある変数の名前で、値はインスタンス化するクラスを表す文字列です。
My_Model::inject('dependentModel', 'My_Other_Model')
問題私は、次のコードを新しいメンバ変数としてキーを使用しようとするときに発生:
protected function _initDependency()
{
$this->_table = null;
foreach (self::$_staticDependency as $key => $dependency) {
$varName = '_' . $key;
$this->{$$varName} = new $dependency();
}
}
私は以下のようなメッセージ
Notice: Undefined variable: _dependentModel
を得るだろう何それを達成するための最良の方法は、自分の依存関係を知らないモデルを作成したいと思っていることです。
$ this - > {$ varName} =新しい$ dependency(); ' – thetaiko