טריגרים של פעולות לרוב , פעולה של משתמש באתר
פעולות מערכת , יותר רלוונטים ללוגיקה
<?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="checkout_cart_product_add_after">
<observer name="customprice" instance="Webkul\Hello\Observer\CustomPrice" />
</event>
</config>
בגוגל מצאתי את הרישמה המלא של הטריגרים :
שלב ב : חיפוש שם הטריגר בקבצי המערכת על מנת להבין איזה אובייקטים ממומשים פה , לא להתבסס על UNIT-TEST

שלב ג: בניית קובץ לוגיקה בתוך תיקיית Observer
VENDOR/MODULE/Observer/CustomerLogin.php
<?php
namespace LessonBackend\EventsAndObservers\Observer;
use Magento\Framework\Event\ObserverInterface;
require_once('lib/internal/kint/kint.phar');
class CustomerLogin implements ObserverInterface
{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
public function __construct(\Psr\Log\LoggerInterface $logger)
{
$this->logger = $logger;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$customer = $observer->getEvent()->getCustomer();
d($observer->getEvent());
// print_r(get_class_methods($customer));
exit;
$customerEmail = $customer->getEmail();
// $eventManager->dispatch(
// 'EVENT_NAME',
// ['model' => $customer, 'password' => 'some_password']
// );
$this->logger->error('Customer Logged In, Customer Email: '.$customerEmail);
return $this;
}
}
שלב ד: בניית קובץ DI.XML
VANDOR/MODULE/etc/events.xml
במידה ומדובר בטריגר שמתרחש בפרונט אז זה הולך לתקיית frontend
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="controller_action_predispatch">
<observer name="global_example" instance="LessonBackend\EventsAndObservers\Observer\Example" />
</event>
</config>
event name - שם הטריגר
observer name - שן יחודי שלנו