/** * Initializes and return an instance of the given class name. * * @param string $className * @return mixed */ public function getInstance($className) { switch ($className) { case '\\Zepi\\Core\\AccessControl\\Manager\\AccessControlManager': if ($this->accessControlManager === null) { $dataSourceManager = $this->framework->getDataSourceManager(); $this->accessControlManager = $this->framework->initiateObject($className, array('accessEntitiesDataSource' => $dataSourceManager->getDataSource('\\Zepi\\Core\\AccessControl\\DataSource\\AccessEntitiesDataSourceInterface'), 'permissionsDataSource' => $dataSourceManager->getDataSource('\\Zepi\\Core\\AccessControl\\DataSource\\PermissionsDataSourceInterface'))); } return $this->accessControlManager; break; case '\\Zepi\\Core\\AccessControl\\Manager\\AccessLevelManager': if ($this->accessLevelManager === null) { $accessLevelsObjectBackend = $this->framework->initiateObject('\\Zepi\\Turbo\\Backend\\FileObjectBackend', array('path' => $this->framework->getRootDirectory() . '/data/access-levels.data')); $this->accessLevelManager = $this->framework->initiateObject($className, array('accessLevelObjectBackend' => $accessLevelsObjectBackend)); $this->accessLevelManager->initializeAccessLevelManager(); } return $this->accessLevelManager; break; case '\\Zepi\\Core\\AccessControl\\Manager\\EventAccessManager': if ($this->eventAccessManager === null) { $eventAccessObjectBackend = $this->framework->initiateObject('\\Zepi\\Turbo\\Backend\\FileObjectBackend', array('path' => $this->framework->getRootDirectory() . '/data/event-access-levels.data')); $this->eventAccessManager = $this->framework->initiateObject($className, array('eventAccessObjectBackend' => $eventAccessObjectBackend)); $this->eventAccessManager->initializeEventAccessManager(); } return $this->eventAccessManager; break; case '\\Zepi\\Core\\AccessControl\\DataSource\\AccessEntitiesDataSourceDoctrine': $dataSourceManager = $this->framework->getDataSourceManager(); return $this->framework->initiateObject($className, array('permissionsDataSource' => $dataSourceManager->getDataSource('\\Zepi\\Core\\AccessControl\\DataSource\\PermissionsDataSourceInterface'))); break; default: return $this->framework->initiateObject($className); break; } }