76
loading...
This website collects cookies to deliver better user experience
\Magento\Framework\Event\ManagerInterface
. Esta classe pode ser instanciada através de injeção de dependência no construtor.dispatch()
da classe de gerenciador de eventos passando como parâmetro o nome do evento que você queira disparar e como um segundo parâmetro um array com os dados que deseja disponibilizar para o observador.<?php
namespace {Vendor}\{Module}\{Directory};
use Magento\Framework\Event\ManagerInterface;
class {ClassName}
{
private ManagerInterface $eventManager;
public function __construct(
ManagerInterface $eventManager
) {
$this->eventManager = $eventManager;
}
public function {methodName}(): {type}
{
$this->eventManager->dispatch('{event_name}', ['{paramName}' => $paramName]);
// Code here
}
}
dispatch()
for chamado.events.xml
onde é definido qual será a classe Observer que reagirá a quando o evento for disparado. Esses arquivos devem seguir a estruturas de pastas \{Vendor}\{Module}\etc\{area}\events.xml
.<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="{event_name}">
<observer name="{observer_name}" instance="{Vendor}\{Module}\Observer\{ObserverName}" />
</event>
</config>
dispatch()
.\{Vendor}\{Module}\Observer\{ObserverName}
e deve implementar a classe \Magento\Framework\Event\ObserverInterface
, que obriga a classe a implementar o método execute(\Magento\Framework\Event\Observer $observer)
.<?php
namespace {Vendor}\{Module}\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Event\Observer;
class {ObserverName} implements ObserverInterface
{
public function execute(Observer $observer): {type}
{
$observer->getData('{param}');
// Code here
}
}
Valores entre chaves ({test}
) devem ser alterados na implementação do código.
php bin/magento cache:clean
php bin/magento flush
- app/
- code/
- {Vendor}/
- {Module}/
- etc/
- events.xml
- module.xml
- Observer/
- {Observername}.php
- registration.php
- composer.json