class BFactory{
private $bRepository;
private $aRepository;
public function __construct(ARepository $aRepository, BRepository $bRepository) {
$this->aRepository = $aRepository;
}
public function create($data) {
$criteria = $this->getCriteriaFromData(); //
$a = $this->aRepository->findMatchingCriteria($criteria);
// передаем внутрь конструктора всю сущность A,
// а там внутри пусть уже разбирается конструктор что ему там надо.
// если нам связь между объектами нужна то просто айдишкой уже не обойтись
return new B($data, $a);
}
}