Регистрация в index.php?
-
16-10-2019 - |
Вопрос
Я хотел бы зарегистрировать некоторые переменные, такие как $mageRunCode
Прежде чем он попадет:
Mage::run($mageRunCode, $mageRunType);
Оказывается, что Mage::log
И даже предприятие Zend, похоже, не выходит на произвольный вывод файла здесь. Как это сделать правильно?
Решение
Любая конкретная причина, по которой вы должны сделать это до того, как Mage :: run вызовет в index.php? Вы обеспокоены, что они изменяются?
Попытка войти в систему в этот момент потребует от корректировки файла Core (index.php), что не является хорошей практикой.
Некоторый поток:
В маге :: запустите, вы получаете:
self::$_app->run(array(
'scope_code' => $code,
'scope_type' => $type,
'options' => $options,
));
Переменные, которые вас интересуют, на данный момент не изменяются.
в mage_core_model_app :: запустить, вы получите эту строку кода:
Mage::register('application_params', $params);
Таким образом, внутренние внутренности Magento прекрасно сохраняют параметры, используемые для вас в реестре.
Чтобы регистрировать их, вы можете использовать событие «Controller_Front_init_before», которое является одним из самых ранних (пригодных) событий, запущенных.
В этом случае вы можете вытащить сохраненные параметры и записать их.
$params = mage::registry('application_params');
Отметьте, что это позволит поставить радикальные накладные расходы на производительность ваших сайтов, так как он будет включать каждый запрос. Любопытно, почему вам нужно их записать?
Другие советы
Я предполагаю, что вы пытаетесь войти в систему в режиме разработчика/локальную среду, и вы хотите возиться.
Если вы хотите войти в Magento в пользовательский файл журнала, вы можете использовать
Mage::log($myVariable, null, 'myVariable.log');
Для этого вам необходимо включить регистрацию в бэкэнде администратора. Это зарегистрирует вещи, чтобы magento_root/var/log/myVariable.log
Совет: вы также можете распечатать всю Backtrace (для некоторого другого глубоко уложенного кода), используя
Mage::log(Varien_Debug::backtrace(true, true), null, 'backtrace.log');
Преимущество печати всей Backtrace заключается в том, что вы можете увидеть точный метод/XML -поток, который ваш вызов следует, чтобы достичь этой точки в выполнении, где угодно в коде PHP. Конечно, это вызывает результат magento_root/var/log/backtrace.log