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?

Author: zus, 2020-01-22

5 answers

Наконец-то перезапустил мой сервер wamp, а также очистил и очистил кэш.

 1
Author: zus, 2020-01-27 12:33:45

Люди сообщают, что ваш код правильно работает на их установках, поэтому проблема, очевидно, связана с вашей установкой или базой кода проекта magento.

Https://justpaste.it/7l2ka доказывает, что ваш класс observer не анализируется, так как php потерпел бы неудачу из-за синтаксической ошибки. Для разработки серверной части magento я полагаюсь на magerun. Он предоставляет все виды полезных команд, с которыми вы должны ознакомиться.

Для начала я бы убедился, что ваш модуль и наблюдатели отображаются с n98-magerun.phar config:dump modules и n98-magerun.phar dev:module:observer:list.

 1
Author: apeters, 2020-02-01 17:31:36

Код наблюдателя, которым вы поделились в 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
}
?>
 1
Author: Mohamed23gharbi, 2020-02-01 23:25:04

Я создал модуль, такой же, как ваш, пожалуйста, проверьте приведенный ниже код.

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_перед , проверьте снимок экрана ниже.

enter image description here

Надеюсь, это сработает для вас.

 1
Author: Kishor Thummar, 2020-02-03 10:41:29

Пожалуйста, запустите команду 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

 -2
Author: nihal malik, 2020-01-23 08:48:01