Example #1
0
 /**
  * Initializes and return an instance of the given class name.
  * 
  * @access public
  * @param string $className
  * @return mixed
  */
 public function getInstance($className)
 {
     switch ($className) {
         case '\\Zepi\\Web\\General\\Manager\\AssetManager':
             if ($this->assetManager === null) {
                 $this->assetManager = new $className($this->getDataObjectBackend('assets.data'), $this->framework->getRootDirectory());
                 $this->assetManager->initializeAssetManager();
             }
             return $this->assetManager;
             break;
         case '\\Zepi\\Web\\General\\Manager\\AssetCacheManager':
             if ($this->assetCacheManager === null) {
                 // Get the cache backends
                 $path = $this->framework->getRootDirectory() . '/cache/';
                 $fileObjectBackend = new \Zepi\Turbo\Backend\FileObjectBackend($path . 'cachedFiles.data');
                 $fileBackend = new \Zepi\Turbo\Backend\FileBackend($path);
                 // CSS helper
                 $cssHelper = new \Zepi\Web\General\Helper\CssHelper($fileBackend);
                 // Load the configuration
                 $configurationManager = $this->framework->getInstance('\\Zepi\\Core\\Utils\\Manager\\ConfigurationManager');
                 $minifyAssets = $configurationManager->getSetting('assets.minifyAssets');
                 $combineAssetGroups = $configurationManager->getSetting('assets.combineAssetGroups');
                 $this->assetCacheManager = new $className($this->framework, $this->getInstance('\\Zepi\\Web\\General\\Manager\\AssetManager'), $fileObjectBackend, $fileBackend, $cssHelper, $minifyAssets, $combineAssetGroups);
                 $this->assetCacheManager->initializeAssetCacheManager();
             }
             return $this->assetCacheManager;
             break;
         case '\\Zepi\\Web\\General\\Manager\\TemplatesManager':
             if ($this->templatesManager === null) {
                 $this->templatesManager = new $className($this->framework, $this->getDataObjectBackend('templates.data'));
                 $this->templatesManager->initializeTemplatesManager();
                 // Execute the register renderer event
                 $runtimeManager = $this->framework->getRuntimeManager();
                 $runtimeManager->executeEvent('\\Zepi\\Web\\General\\Event\\RegisterRenderers');
             }
             return $this->templatesManager;
             break;
         case '\\Zepi\\Web\\General\\Manager\\MenuManager':
         case '\\Zepi\\Web\\General\\Manager\\MetaInformationManager':
             return $this->framework->initiateObject($className, array(), true);
             break;
         default:
             return $this->framework->initiateObject($className);
             break;
     }
 }