objectManager = $objectManager; $this->objectFactory = $objectFactory; $this->objectRepositoryFactory = $objectRepositoryFactory; $this->eventManager = $eventManager; } public function createRepository( DataSource $dataSource, string $repositoryClassName, string $modelClassName ) : ObjectRepositoryInterface { $objectRepository = new $repositoryClassName( $this->objectManager, new DataSourceObjectDataRepository( $this->objectManager, $dataSource, $modelClassName ), $this->objectFactory, new BasicObjectHydrator($this->objectManager), $this->eventManager, $modelClassName ); $this->objectRepositoryFactory->addObjectRepository($modelClassName, $objectRepository); return $objectRepository; } }