Sökresultat :

×

vad är plugin magento 2 eller vad är interceptor i magento 2

Magento 2 är en kraftfull och flexibel e-handelsplattform som erbjuder en mängd olika anpassningsalternativ till utvecklare. En av nyckelfunktionerna som möjliggör denna flexibilitet är användningen av plugins, även kända som interceptorer, som tillåter utvecklare att modifiera beteendet hos kärnklasser utan att ändra sin ursprungliga kod.

    Vad är en plugin?

    I Magento 2 är en plugin en klass som avlyssnar exekveringen av en offentlig metod i en annan klass, vilket gör att utvecklare kan modifiera eller utöka dess funktionalitet. Plugins fungerar genom att definiera före, efter eller runt metoder som exekveras tillsammans med den ursprungliga metoden. Innan plugins exekveras före den ursprungliga metoden och kan användas för att ändra inmatningsparametrarna eller förhindra att den ursprungliga metoden körs helt och hållet. Efter att plugins exekveras efter den ursprungliga metoden och kan användas för att ändra utdata eller utföra ytterligare åtgärder baserat på resultatet. Runt plugins omsluter den ursprungliga metoden och kan användas för att ändra både ingångs- och utdataparametrarna eller utföra ytterligare åtgärder före och efter att metoden exekveras.

    Hur skapar man ett plugin i Magento 2?

    För att skapa ett plugin i Magento 2 måste du följa dessa steg:

    • Skapa en ny PHP-klass som utökar klassen Magento\Framework\Interception\AbstractInterceptor.
    • Implementera metoden intercept() som innehåller koden som kommer att köras när plugin anropas.
    • Definiera insticksprogrammets konfiguration i di.xml-filen, som finns i modulens etc-katalog.
    • Registrera plugin-programmet genom att lägga till en plugin-deklaration till di.xml-filen.
    • Anta till exempel att du vill lägga till ytterligare validering till kundregistreringsprocessen. I så fall kan du skapa en plugin som fångar upp Magento\Customer\Model\AccountManagement-klassens createAccount()-metod och lägger till den nödvändiga valideringslogiken. Här är ett exempel på implementering:


      namnområde Leverantör\Module\Plugin; använd Magento\Framework\Interception\AbstractInterceptor; använd Magento\Framework\Interception\InterceptorInterface; använd Magento\Framework\App\RequestInterface; använd Magento\Framework\App\ResponseInterface; class CustomerAccountManagementPlugin utökar AbstractInterceptor implementerar InterceptorInterface { public function intercept (\Magento\Customer\Model\AccountManagement $subject, \Closure $proceed, RequestInterface $request, ResponseInterface $response) { // Lägg till anpassad valideringslogik här om (! getParam('agree_to_terms')) { throw new \Exception(__('Godkänn villkoren.')); } // Anropa den ursprungliga metoden $result = $proceed($request, $response); // Lägg till anpassad efterbearbetningslogik här if ($result->getCustomerId()) { // Gör något här } return $result; } }
      
        

      I det här exemplet lägger intercept()-metoden först till anpassad valideringslogik till registreringsbegäran och anropar sedan den ursprungliga createAccount()-metoden med hjälp av parametern $proceed. Efter att den ursprungliga metoden har körts lägger metoden intercept() till ytterligare efterbearbetningslogik baserat på resultatet.

      För att registrera plugin-programmet måste du lägga till en plugin-deklaration till di.xml-filen, som ska finnas i modulens etc-katalog. Här är ett exempel på hur du registrerar ovanstående plugin:


      
      
      
      
      

      I det här exemplet anger plugin-deklarationen namnet på plugin-programmet, klassen som implementerar plugin-programmet och i vilken ordning plugin-programmet ska köras i förhållande till andra plugins. Attributet sortOrder är valfritt men kan användas för att styra i vilken ordning flera plugins körs.



    Varför använda plugins i Magento 2?

    Plugins erbjuder flera fördelar för utvecklare som arbetar med Magento 2:


    • Flexibilitet: Plugins tillåter utvecklare att ändra beteendet hos kärnklasser utan att ändra deras ursprungliga kod, vilket gör det lättare att anpassa Magento 2:s beteende för att passa specifika affärsbehov.
    • modularitet: Plugins kan enkelt läggas till eller tas bort från systemet, vilket gör att utvecklare kan experimentera med olika funktioner och konfigurationer.
    • interoperabilitet: Plugins fungerar med alla klasser som implementerar Magento\Framework\Interception\InterceptorInterface-gränssnittet, vilket gör det möjligt att integrera tredjepartsmoduler sömlöst.
    • Testbarhet: Eftersom plugins fångar upp exekveringen av befintlig kod kan de enkelt testas isolerat, vilket säkerställer att de fungerar korrekt innan de distribueras i en produktionsmiljö.

    Slutsats

    Plugins, även kända som interceptorer, är en kraftfull funktion i Magento 2 som gör det möjligt för utvecklare att ändra beteendet hos kärnklasser utan att ändra sin ursprungliga kod. Genom att avlyssna exekveringen av en metod och lägga till ytterligare funktionalitet kan utvecklare skapa anpassningar och integrationer som skulle vara svåra eller omöjliga att uppnå annars. Om du arbetar med Magento 2 är plugins ett viktigt verktyg i din utvecklingsverktygssats, och att bemästra deras användning hjälper dig att skapa flexibel, modulär och interoperabel kod som möter dina affärsbehov.

    1000+ organisationer som litar på oss



    Kontakta oss


     Tack för ditt svar. Vi återkommer snart.

    Något gick fel. Skicka din fråga igen

Hej där!

Behövs hjälp? Vi är här!

stödja
Kontakta miniOrange Support
framgång

Tack för din förfrågan.

Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com