Magento 1.9 - Кто-нибудь, помогите мне, что такое ошибка в моем наблюдателе?
Мой пользовательский наблюдатель:
App\etc\modules\Gta_FindPaymentGateway.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Gta_FindPaymentGateway>
<active>true</active>
<codePool>local</codePool>
</Gta_FindPaymentGateway>
</modules>
</config>
App\code\local\Gta\FindPaymentGateway\etc\config.xml
<?xml version="1.0"?>
<config>
<modules>
<Gta_FindPaymentGateway>
<version>1.0.0</version>
</Gta_FindPaymentGateway>
</modules>
<global>
<models>
<gta_findpaymentgateway>
<class>Gta_FindPaymentGateway_Model</class>
</gta_findpaymentgateway>
</models>
<events>
<sales_order_place_before>
<observers>
<Gta_FindPaymentGateway_Model_Observer>
<type>singleton</type>
<class>Gta_FindPaymentGateway_Model_Observer</class>
<method>paymenter</method>
</Gta_FindPaymentGateway_Model_Observer>
</observers>
</sales_order_place_before>
</events>
</global>
</config>
App\code\local\Gta\FindPaymentGateway\Model\Observer.php
<?php
class Gta_FindPaymentGateway_Model_Observer
{
public function paymenter($Observer)
{
$order = $Observer->getEvent();
Mage::log($order->getName(),null,'event.log',true);
}
}
?>
Журнал не создан.
Поделитесь каким-либо инструментом отладки для magento?
5 answers
Наконец-то перезапустил мой сервер wamp, а также очистил и очистил кэш.
Люди сообщают, что ваш код правильно работает на их установках, поэтому проблема, очевидно, связана с вашей установкой или базой кода проекта magento.
Https://justpaste.it/7l2ka доказывает, что ваш класс observer не анализируется, так как php потерпел бы неудачу из-за синтаксической ошибки. Для разработки серверной части magento я полагаюсь на magerun. Он предоставляет все виды полезных команд, с которыми вы должны ознакомиться.
Для начала я бы убедился, что ваш модуль и наблюдатели отображаются с n98-magerun.phar config:dump modules
и n98-magerun.phar dev:module:observer:list
.
Код наблюдателя, которым вы поделились в https://justpaste.it/7l2ka содержит die(), который прервет выполнение из-за фатальной ошибки ( неожиданная "смерть" (T_EXIT))
<?php
class Gta_FindPaymentGateway_Model_Observer
{
public function paymenter($Observer)
{
$order = $Observer->getEvent();
Mage::log($order->getName(), null,'event.log',true);
}
die(); // !!!!!!!!!!!!!! IS THIS STILL IN YOUR CODE ??? If yes remove it
}
?>
Я создал модуль, такой же, как ваш, пожалуйста, проверьте приведенный ниже код.
App\code\local\Gta\FindPaymentGateway\etc\config.xml
<?xml version="1.0"?>
<config>
<modules>
<Gta_FindPaymentGateway>
<version>1.0.0</version>
</Gta_FindPaymentGateway>
</modules>
<global>
<models>
<findpaymentgateway>
<class>Gta_FindPaymentGateway_Model</class>
<resourceModel>findpaymentgateway_mysql4</resourceModel>
</findpaymentgateway>
</models>
<events>
<sales_order_place_before> <!-- identifier of the event we want to catch -->
<observers>
<sales_order_place_before_handler> <!-- identifier of the event handler -->
<type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
<class>findpaymentgateway/observer</class> <!-- observers class alias -->
<method>paymenter</method> <!-- observer's method to be called -->
<args></args> <!-- additional arguments passed to observer -->
</sales_order_place_before_handler>
</observers>
</sales_order_place_before>
</events>
</global>
</config>
App\code\local\Gta\FindPaymentGateway\Model\Observer.php
<?php
class Gta_FindPaymentGateway_Model_Observer
{
public function paymenter(Varien_Event_Observer $observer)
{
$event = $observer->getEvent();
Mage::log($event->getName(),null,'event.log');
}
}
Файл журнала, созданный в var/log/event.log и распечатайте sales_order_place_перед , проверьте снимок экрана ниже.
Надеюсь, это сработает для вас.
Пожалуйста, запустите команду php bin/magento setup:upgrade, а затем команду php bin/magento s:s:d, после чего она должна работать нормально. или вы можете обратиться к этому вопросу https://stackoverflow.com/questions/52081048/magento-1-9-magelog-isnt-creating-the-log-files