Cómo verificar si existe o no una biblioteca de terceros en Magento 2

Estás leyendo la publicación: Cómo verificar si existe o no una biblioteca de terceros en Magento 2

¡Magento 2 funciona con numerosas bibliotecas de terceros y también se adapta a bibliotecas externas, sin duda!

Si desea ampliar la funcionalidad predeterminada de Magento con las API de terceros, debe incluir bibliotecas externas en su extensión o función. Las bibliotecas de terceros son una excelente manera de agregar características o funcionalidades complejas a sus extensiones de Magento 2 rápidamente. Las pasarelas de pago, la API de envío, las redes sociales, todas proporcionan su biblioteca específica del idioma, que debemos incluir en nuestra extensión de Magento para conectarnos con ellos.

Tomemos un ejemplo en el que requiere que los usuarios instalen una biblioteca de terceros usando composer. ¿Qué sucede si los usuarios olvidan instalar la biblioteca y comienzan a utilizar la extensión? Obviamente, la extensión dejará de funcionar en algún momento o puede generar un error por inexistencia de la biblioteca de terceros.

Para evitar la situación, he encontrado la solución para compruebe si existe o no una biblioteca de terceros en Magento 2. Siguiendo los pasos, puede crear un evento para verificar la existencia de la biblioteca de terceros y configurar el error de restricción para seguir trabajando con la funcionalidad hasta que se instale la biblioteca.

Pasos para Compruebe si existe o no una biblioteca de terceros en Magento 2

En primer lugar, decida la ubicación en la que necesita verificar la disponibilidad de una biblioteca de terceros.

La parte central de verificar la disponibilidad es la clase_existe función que se puede utilizar de la siguiente manera.

🔥 Recomendado:  Gen Z quiere contenido que brinde un sentido de comunidad y relajación, dice un nuevo informe de YouTube

if (!class_exists(‘nombre de la biblioteca\Resto\Cliente’)) { $this->messageManager->addErrorMessage(‘Instala la biblioteca para usar la notificación por SMS’); }

if (!class_exists(‘nombre de biblioteca\Resto\Cliente’)) {

$this->messageManager->addErrorMessage(‘Instale Library para usar la notificación por SMS’);

}

Comprendamos esta publicación con un ejemplo en vivo:

Desea verificar la existencia de la biblioteca de terceros mientras alguien guarda la configuración de la extensión. Aquí, los eventos y los observadores tienen lugar para establecer la restricción.

En admin_system_config_changed_section_sms evento, pase un observador que va a verificar la disponibilidad de la biblioteca de terceros.

Aquí está el código para pasar el evento. Para obtener más listas de eventos y cómo se usan, puede consultar Eventos de Magento 2.

instancia=”Proveedor\Extensión\Observador\ConfigTwilioObserver”/>

Pase el código de observador como se muestra a continuación en Proveedor\Extensión\Observador

messageManager = $messageManager; } public function execute(EventObserver $observer) { if (!class_exists(‘Library Name\Rest\Client’)) { $this->messageManager->addErrorMessage(‘Por favor, instale la biblioteca para usar la notificación por SMS’); falso retorno; } } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

26

27

28

29

espacio de nombres Proveedor\Extensión\Observador;

use Magento\Framework\Event\Observer como EventObserver;

use Magento\Framework\Event\ObserverInterface;

use Magento\Framework\Message\ManagerInterface;

clase ConfigTwilioObserver implementa ObserverInterface

{

protegido $messageManager;

$ ayudante protegido;

función pública __construir(

ManagerInterface $messageManager

)

{

$this->messageManager = $messageManager;

}

función pública ejecutar (EventObserver $ observador)

{

if (!class_exists(‘Nombre de la biblioteca\Resto\Cliente’)) {

$this->messageManager->addErrorMessage(‘Instale Library para usar la notificación por SMS’);

falso retorno;

}

}

}

¡Eso es todo!

Establecer una validación simple puede ahorrarle muchas consultas de soporte, ¿verdad?

Cualquier duda sobre este tema se puede discutir en la sección de Comentarios a continuación. Estaré encantado de resolverlos.

Siéntase libre de compartir la solución anterior con otros desarrolladores a través de las redes sociales.

Gracias.