Если вы не хотите возвращаться к хаку с включенным путем, вы также можете использовать отражение, чтобы установить собственный класс запросов для модели Mage_Core_Model_App
. Для этого вы можете использовать наблюдателя для события controller_front_init_before
.
Я предполагаю, что вы знакомы с тем, как создать наблюдатель событий, поэтому я добавлю только код для метода наблюдателя. Если вам нужна дополнительная информация, пожалуйста, спросите.
// Observer method
public function controllerFrontInitBefore(Varien_Event_Observer $observer)
{
$app = Mage::app();
$reflection = new ReflectionClass($app);
$property = $reflection->getProperty('_request');
$property->setAccessible(true);
$myRequest = new Your_Module_Controller_Request_Http();
$myRequest->setOrigRequest($app->getRequest()); // if needed
$property->setValue($app, $myRequest);
// Proof of concept:
// Loggs Your_Module_Controller_Request_Http
Mage::log(get_class(Mage::app()->getRequest()));
}
Создайте класс Your_Module_Controller_Request_Http
и расширьте исходный Mage_Core_Controller_Request_Http
.
После этого события ваш объект запроса будет использоваться вместо оригинала.
Это позволяет вам оставаться максимально безопасным при обновлении, поскольку вам не нужно копировать полный класс из пула кода cor.