/** * 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; } }
/** * Returns the url for one asset. * * @access public * @param string $type * @param string $assetName * @return string */ public function getAssetUrl($type, $assetName) { $file = $this->assetManager->getAssetFile($type, $assetName); if ($file === false) { return; } $cachedFile = $this->generateCachedFile($type, $file->getFileName()); return $this->getUrlToTheAssetLoader($cachedFile['file']); }