Отладка наблюдателя проверки 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, так как это приводит к перенаправлению в корзину без указания порядка выполненный. Как я могу увидеть эту переменную, чтобы знать, какие данные я могу извлечь?
4 answers
Попробуйте зарегистрировать свои данные следующим образом:
protected $logger;
public function __construct(\Psr\Log\LoggerInterface $logger)
{
$this->logger = $logger;
}
Вы используете отладку, исключение, систему для регистратора PSR, например:
$this->logger->info($yourCustomData);
$this->logger->debug($yourCustomData);
Надеюсь, это вам поможет.
Если вы добавите следующее, вы получите ошибку, но вы увидите, что находится в наблюдателе.
return var_dump($observer);
Если вам крайне необходимо увидеть данные от наблюдателя, вы можете сделать это грязным/неприятным способом - вы можете распечатать их с помощью die(); + var_dump(); в Вашем классе наблюдателей
public function execute(Observer $observer)
{
die(var_dump($observer));
}
Временный журнал печати с новым файлом
$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