Skip to content

Instantly share code, notes, and snippets.

@ananth-iyer
Created November 10, 2022 07:30
Show Gist options
  • Save ananth-iyer/cabe9281ea56f0dfdd59caa13446b594 to your computer and use it in GitHub Desktop.
Save ananth-iyer/cabe9281ea56f0dfdd59caa13446b594 to your computer and use it in GitHub Desktop.
Emulate event observer for testing
<?php
use Magento\Framework\App\Bootstrap;
use Magento\Framework\DataObject;
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
// set frontend scope - necessary
/** @var \Magento\Framework\App\State $state */
$state = $obj->get(\Magento\Framework\App\State::class);
$state->setAreaCode('adminhtml'); // others: frontend, crontab
/** @var \Magento\Store\Model\StoreManagerInterface $store */
$store = $obj->get(\Magento\Store\Model\StoreManagerInterface::class);
$store->setCurrentStore(0);
echo "Start...\n";
/** @var \Magento\Sales\Observer\AfterPlaceOrder $adyenEvent */
$adyenEvent = $obj->create(\Magento\Sales\Observer\AfterPlaceOrder::class);
/** @var \Magento\Sales\Model\OrderRepository $orderRep */
$orderRep = $obj->create(\Magento\Sales\Model\OrderRepository::class);
$order = $orderRep->get(1);
$data = $obj->create(DataObject::class);
$data->setData(['order' => $order]);
/** @var Magento\Framework\Event\Observer $ob */
$ob = $obj->create(\Magento\Framework\Event\Observer::class);
$ob->setEvent($data);
$adyenEvent->execute($ob);
echo "send...\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment