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, чтобы самому описать запасной вариант. Есть ли какая-либо информация о фактической стоимости производительности этого резервного механизма?