好的,我正在创建一个小型 PHP 应用程序。目前的结构是这样的:
$client = new AppName\Client;
$model = $client->getModel();
$model->getNode();
这里的一切都很美好。Client 负责通过 Socket 连接和运行命令到我构建的一个小型 C 应用程序。我只是在这里玩建筑。Client::getModel 返回一个模型实例。在 getModel 期间,我通过构造函数将 Client 注入到 Model 中。像这样的东西:
public function getModel()
{
return new Model('parameter', $this);
}
反过来...
// Model
public function __construct($param, Client $client)
{
$this->setClient($client);
// ...
}
但是,在 Model::getNode 期间,我想返回一个 Node 实例。但是,与 getModel 不同,我不想再次注入 Client。但我不得不。现在,我正在这样做:
public function getNode()
{
return new Node('parameter', $this->getClient());
}
我确定这是不正确的。一定有我遗漏的东西......我理解并使用依赖注入,但我很确定依赖注入容器不会解决我的问题。