conf[IPersist::class] = [ 'class' => Persist::class, ]; $this->conf[IResource::class] = [ 'class' => Resource::class, ]; array_replace($this->conf, $conf); } public function setDtoFactory(IDtoFactory $factory): void { $this->dtoFactory = $factory; } public function createPersist(): IPersist { $persist = new $this->conf[IPersist::class]['class']; $persist->setDtoFactory($this->dtoFactory); $persist->init(); return $persist; } public function createResource(): IResource { $resource = new $this->conf[IResource::class]['class']; $resource->setDtoFactory($this->dtoFactory); return $resource; } }