/** * Gets the template directory to use for a given module and template file. * * @param string The module name * @param string The template file * * @return string A template directory */ public function getTemplateDir($moduleName, $templateFile) { // if there is a configuration dimension if ($this->hasDimension()) { $cacheKey = sprintf('sf_template_dirs_%s_%s', $moduleName, $templateFile); // if there is a cache return it if ($this->dimension->getCache()->has($cacheKey)) { $dirs = $this->dimension->getCache()->get($cacheKey); } else { $dirs = null; $paths = $this->getTemplateDirs($moduleName); foreach ($paths as $dir) { if (is_readable($dir . '/' . $templateFile)) { $dirs = $dir; break; } } /* if($dirs === null) { throw new sfException(sprintf('Could not find template "%s" in paths "%s"', $templateFile, var_export($paths, true))); } */ // save cache $this->dimension->getCache()->set($cacheKey, $dirs); } } else { $dirs = parent::getTemplateDir($moduleName, $templateFile); } return $dirs; }