私のアプリケーションは POPO のコレクションであり、Zend Framework 2 Service Manager を使用してこれらの POPO を接続しようとしています。
私の問題を説明するために、次の例を取り上げます。
$config = array(
'services' => array(
'my.app.serviceA' => new \My\App\Services\ServiceA(),
'my.app.serviceB' => new \My\App\Services\ServiceB(),
'my.app.manager.task' => new \My\App\Manager\TaskManager(),
),
);
私の TaskManager クラスは次のようになります。
class TaskManager {
protected $serviceA;
protected $serviceB;
public function setServiceA( \My\App\Service\ServiceA $serviceA )
{
$this->serviceA = $serviceA;
}
public function setServiceB( \My\App\Service\ServiceB $serviceB )
{
$this->serviceB = $serviceB;
}
}
ご覧のとおり、このクラスは と の両方にTaskManager
依存しています。と の両方に定義されたサービス名を使用して、Service Manager 構成を使用してこれらのサービスを挿入するにはどうすればよいですか?ServiceA
ServiceB
my.app.manager.task
ServiceA
ServiceB
アップデート:
私は、自分の目的のために ServiceManager コンポーネントを使用するべきではなく、代わりに Zend DI コンポーネントを使用するべきだと考え始めています。
ServiceManager は ZF2 の「フレームワーク」コンポーネントであるという印象を受けますが、Zend\DI はより一般的な汎用 DiC のようです。したがって、これが ServiceManager と MVC および ModuleManager コンポーネント (「フレームワーク」コンポーネントのようにも見える) との結びつきの関係の理由である可能性があります。
多分誰かが明確にすることができますか?