Отладка наблюдателя проверки Magento 2


Я пытаюсь создать модуль, который получает данные заказа при размещении заказа и отправляет их третьей стороне с помощью FTP.

Я создал наблюдателя, который вызывается событием sales_order_place_after.

Мой код наблюдателя:

<?php

use Magento\Framework\Event\ObserverInterface;

class Orderobserver implements ObserverInterface
{
    public function __construct(
        \Magento\Quote\Model\QuoteFactory $quoteFactory,
        \Magento\Sales\Model\Order $order,
        \Digitaq\CbFashion\Helper\Data $helper
    )
    {
        $this->_order = $order;
        $this->_helper = $helper;
    }

    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $order = $observer->getEvent()->getOrder();
        $this->_helper->writeShp($order);
    }
}

Наблюдатель успешно вызывается, и метод writeShp также делает это, но я не могу сбросить переменную $order, так как это приводит к перенаправлению в корзину без указания порядка выполненный. Как я могу увидеть эту переменную, чтобы знать, какие данные я могу извлечь?

Author: Digitaq, 2019-02-27

4 answers

Попробуйте зарегистрировать свои данные следующим образом:

protected $logger;
public function __construct(\Psr\Log\LoggerInterface $logger)
{
    $this->logger = $logger;
}

Вы используете отладку, исключение, систему для регистратора PSR, например:

$this->logger->info($yourCustomData);
$this->logger->debug($yourCustomData);

Надеюсь, это вам поможет.

 1
Author: iqbal malik, 2019-02-27 12:20:30

Если вы добавите следующее, вы получите ошибку, но вы увидите, что находится в наблюдателе.

return var_dump($observer);

 0
Author: Darkbelg, 2019-03-12 10:03:31

Если вам крайне необходимо увидеть данные от наблюдателя, вы можете сделать это грязным/неприятным способом - вы можете распечатать их с помощью die(); + var_dump(); в Вашем классе наблюдателей

public function execute(Observer $observer)
    {
        die(var_dump($observer));
    }
 0
Author: Zilvinasklp, 2019-12-19 08:26:35

Временный журнал печати с новым файлом

$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/logtest.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('Simple Text Log'); // Simple Text Log
$logger->info('Array Log'.print_r($myArrayVar, true)); // Array Log
 0
Author: Jigar Patel, 2020-09-25 13:27:01