Magento 2 Plugin After

No post anterior, começamos a falar sobre Plugins e focamos no Plugin Before. Neste post, falaremos sobre Magento 2 Plugin After.

Vimos como utilizar o Plugin Before para interceptar um método e alterar o comportamento do seu argumento, conforme abaixo:

4Mage - Trabalhando com Plugin Before

Enquanto o Plugin Before trabalha interceptando um método para alterar o comportamento do seu argumento, o Plugin After trabalha interceptando um método para alterar o comportamento do seu resultado.

Magento 2 Plugin After

Voltando o nosso módulo, efetuamos a seguinte alteração em nossa classe PluginOne:

<?php

namespace ForMage\Learning\Plugin;

class PluginOne
{
//    public function beforeSetName(\Magento\Catalog\Model\Product $subject, $name)
//    {
//        return "Plugin Before | ".$name;
//    }

    public function afterGetName(\Magento\Catalog\Model\Product $subject, $result)
    {
        return $result. " | Plugin After";
    }
}

Comentamos o nosso Plugin Before e adicionamos no nosso método afterGetName(). Assim, nós interceptaremos o método getName() da classe Magento\Catalog\Model\Product. É importante o uso do prefixo after antes do nome do método. Ao executarmos o nosso controle temos o seguinte resultado, o nome do nosso produto concatenado com “| Plugin After”:

4Mage - Trabalhando com Plugin After

No entanto, nós podemos utilizar o Plugin Before junto com o Plugin After:

<?php

namespace ForMage\Learning\Plugin;

class PluginOne
{
    public function beforeSetName(\Magento\Catalog\Model\Product $subject, $name)
    {
        return "Plugin Before | ".$name;
    }

    public function afterGetName(\Magento\Catalog\Model\Product $subject, $result)
    {
        return $result. " | Plugin After";
    }
}

Então, com o Plugin Before interceptamos o método setName() e alteramos o comportamento seu argumento, adicionando a string “Plugin Before |” antes do argumento e, como o Plugin After interceptamos o método getName() e modificamos o seu resultado, conforme visto acima.

Ao executarmos a nossa rota novamente temos:

4Mage - Trabalhando com Plugin Before e After

Conclusão: a utilização de Plugin facilita bastante o nosso dia-a-dia como desenvolvedores Magento 2!

Para mais informações sobre Plugins

Dúvidas? Posta aí!

Um abraço!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *