私は現在、依存性注入を管理するためにPimpleと同様のクラスを使用しています。たとえば、構成クラスに依存しているデータベース接続のインスタンスを取得する場合は、次のようにします。
$DI = new DIContainer;
$DI->Config =
$DI->share = function($c){
return new Config;
};
$DI->Database =
$DI->share = function($c){
$cfg = $c->Config;
$host = $cfg->getDbHost();
$username = $cfg->getDbUsername();
$password = $cfg->getDbPassword();
$name = $cfg->getDbName();
return new \mysqli($host, $username, $password, $name);
};
簡単に言うと、$ DI-> Configは常に構成クラスの同じインスタンスを返し、$ DI-> Databaseは、Configオブジェクト自体ではなく、オブジェクトのいくつかのプロパティ(host、ユーザーなど)。
もちろん、これは実行時にコンテナーをセットアップする必要があることを意味し、Zend Framework 2の依存性注入コンテナー(定義リストを渡すことができる)に移行することを考えていました。
ただし、Zend \ Di \ Diには、オブジェクト自体ではなく、オブジェクトのプロパティを挿入する方法の例が見つかりません。これは可能ですか?何か例を知っていますか?