Magento具有回退机制,通过定义的一组路径检查预期文件是否存在,有助于防止错误和主题问题。 It's implemented like this:Magento的回退机制的性能成本是多少?
/**
* Check for files existence by specified scheme
*
* If fallback enabled, the first found file will be returned. Otherwise the base package/default theme file,
* regardless of found or not.
* If disabled, the lookup won't be performed to spare filesystem calls.
*
* @param string $file
* @param array &$params
* @param array $fallbackScheme
* @return string
*/
protected function _fallback($file, array &$params, array $fallbackScheme = array(array()))
{
if ($this->_shouldFallback) {
foreach ($fallbackScheme as $try) {
$params = array_merge($params, $try);
$filename = $this->validateFile($file, $params);
if ($filename) {
return $filename;
}
}
$params['_package'] = self::BASE_PACKAGE;
$params['_theme'] = self::DEFAULT_THEME;
}
return $this->_renderFilename($file, $params);
}
由于Magento的主题,开发人员,你有两个选择:你可以尽量少添加到您的新的主题,并依赖于回退,也可以一切从后备主题复制到新的主题,修改(在这种情况下,回退必须在找到目标之前遍历更少的文件)。前一种方法是推荐的。后者不是。
复制这些文件肯定是混乱的,但另一方面,似乎回退应该相当昂贵,特别是如果(作为一个好的,简洁的编码器)确保尽可能多的文件回退。所以我发现自己想知道如果我采取措施最小化发生的回退量,Magento网站的性能会更好。
我已经在网上搜索过,但还没有找到任何关于这个问题的信息,而且我还不是很熟悉Magento来自己剖析备份。有没有关于此回退机制的实际性能成本的任何信息?