例えばDIコンテナから取得してメンバに持つのをやめて、各メソッドで都度取得する、ような感じでしょうか。
概ねそんな感じです。
参考リンクから抜粋
コンテナをファクトリでないオブジェクトの 外側 で使う場合、あなたはコンテナをDIのために使っている。
コンテナをファクトリでないオブジェクトの 内側 で使う場合、あなたはコンテナをサービスロケータとして使っている。
DI
php
1class Client
2{
3 private $service;
4
5 public function __construct(ServiceInterface $service)
6 {
7 $this->service = $service;
8 }
9
10 public function doSomething()
11 {
12 $this->service->doSomething();
13 }
14
15 ...
16}
サービスロケータ
php
1use Pimple\Container;
2
3class Client
4{
5 private $container;
6
7 public function __construct(Container $container)
8 {
9 $this->container = $container;
10 }
11
12 public function doSomething()
13 {
14 $this->container['service_interface']->doSomething();
15 }
16
17 ...
18}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/07 20:57
2016/10/07 21:04