我正在处理<project_dir>\build\libs
与Model A
有几种不同Many To Many
关系的应用程序。也许大约10.这意味着,有10个不同的数据透视表连接Model B
和Models A
,具体取决于使用模型的环境。每个关系都加载了功能,因此我希望每个关系都有一个服务类。
我的问题是:什么是让这些服务相互通信并在需要时引用相同模型的最佳方式?例如:
B
上述问题是,class FirstRelationshipService {
public function __construct(Model A $model, SecondRelationshipService $service2)
{
$this->modelA = $modelA;
$this->secondRelationshipService = $service2;
}
public function someMethodUsingSecondRelationshipService()
{
$this->secondRelationshipService->getSomethingFromHere();
}
}
class SecondRelationshipService {
public function __construct(Model A $model)
{
$this->modelA = $modelA;
}
public function getSomethingFromHere()
{
return $this->modelA->doSomething();
}
}
有时需要SecondRelationshipService
正在使用的ModelA
实例。此外,我可能有十个服务类,需要类似的功能。那么我是否只是根据需要传递FirstRelationshipService
实例?或者有更好的方法吗?
注意:在上面:
ModelA
,反之亦然,好几次,这个关系的每个实例引用不同的数据透视表和不同的关系名称。