Interception Plugin is referred to a little Magento 2 extension that allows editing the behavior of any public class or method by intercepting a function call and running code either before or after or around the function call. By using this Magento 2 Plugin Interception, you can modify the behavior of a class while there is no need to change the class directly.
Maybe you still think the observers can help you do that fluently but some differences need to be pointed out. Particularly, not only create functions of a class using dependency injection but Interception plugin can also be confirmed with a sortOrder, that allows checking the chain and order on which plugins run. That is the reason why this plugin doesn’t make the class change and doesn't have any conflict with one another.
For a module developer as you, Magento 2 Interception plugin allows:
What options Magento 2 Interception plugin doesn't work with?
File path: app/code/MageCheck/Tutorial/etc/di.xml
A plugin is a great way to expand or edit a public method’s behavior by using code before, after or around method.
First of all, please get an object that provides permission to all public methods of the observed method's class.
File path: app/code/MageCheck/Tutorial/Controller/Index/Example.php
Before methods are the first methods to run in an observed method, and these methods must have the same name to the observed one’s name while the prefix label is before.To apply the before methods for modifying the arguments of an observed method, you can return a modified argument. If there are multiple arguments, the returning will be carried out according to a range of those arguments. If the returning is invalid, that means the arguments for the observed method should not be modified.
File path: app/code/MageCheck/Tutorial/Controller/Index/Example.php
After methods start running right after the observed method is finished, and these methods must have the same name to the observed one’s name while the prefix label is “after”. After methods take a responsibility of editing the results of an observed method in the correct way and being required to have a return value.
File path: app/code/MageCheck/Tutorial/Controller/Index/Example.php
Around methods allows the code to run before and after the observed method, so you can override a method. These methods must have the same name to the observed one’s name while the prefix label is “around”. Before the arranging of the original method’s argument, a callable from around methods will be called to the next method in the chain, that means the next plugin or the observed function is also called.Note: In case the callable is not declared, the calling to neither the next plugin nor the original method is achieved.