link-in - רשומות קוד

חפש את הקוד שלך >

Custom events

הרחבה של לפונקציונליות של מודולים במגנטו , בנוי על /magento/Framework/Event/ManagerInterface ומבוסס על התלבשות על אינווט קיים או יצירה של אחד ואז חיבור הפונקציונלית הרצויה באמצעות dispatch 
מורכב מ3 חלקים : 

  • יצירת הEVENT ורישומו
  • יצירה של הOBSERVER 
  • מימוש על ידי DISPATCH במקום הרצוי 

events.xml

VANDOR/MODULE/etc/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="api_beforesave">
        <observer name="api_beforesave_name" instance="Api\V1\Observer\Beforesave" />
    </event>
    <event name="api_aftersave">
        <observer name="api_aftersave_name" instance="Api\V1\Observer\Aftersave" />
    </event>
</config>

יצירה של OBSERVER

VANDOR/MODULE/Observer/Aftersave.php
דוגמה לקובץ שמבצע לוג

<?php

namespace Api\V1\Observer;

use Magento\Framework\Event\ObserverInterface;
class Aftersave implements ObserverInterface
{
    protected $logger;
    public function __construct(
        \Psr\Log\LoggerInterface $logger
    ) {
        $this->logger = $logger;
    }
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $this->logger->error('api log fron after save');
        return $this;
    }
}

מימוש של הפונקציה ב dispatch

$this->_eventManager->dispatch('api_aftersave');

מודול רלוונטי : zur.web-e.co.il\app\code\Api\V1

דוקומנטציה : https://devdocs.magento.com/guides/v2.4/extension-dev-guide/events-and-observers.html