Podemos extender el controlador de dos maneras: usando preferencia y usando plugin. Pero no entiendo eso, cuál es bueno y las ventajas / desventajas de la preferencia frente al complemento.
<preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" />
<type name="Magento\Catalog\Model\Product">
<plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/>
</type>
module
magento2
event-observer
plugin
Anand Ontigeri
fuente
fuente
Respuestas:
Use complementos siempre que sea posible, luego observadores (vea los pros y los contras de cada uno ), esto le permitirá evitar conflictos con otras extensiones (módulos de terceros).
La preferencia debe usarse solo si toda la implementación de la clase / interfaz principal debe sustituirse por una personalizada. Tenga en cuenta que solo una preferencia está activa en cualquier momento (cuál está definida por la secuencia definida en
module.xml
), por lo que si otra extensión define la preferencia por la misma clase / interfaz, habrá un conflicto (estas extensiones no pueden funcionar juntas).fuente
fuente
información adicional: casi todas las preferencias utilizadas en el pasante m2 es solo para mantener la relación entre la clase de hormigón base y la interfaz, como:
como tu caso es usado una vez pienso:
fuente