Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Se puede integrar el banderín de Laravel con otros paquetes de Laravel?


¿Se puede integrar el banderín de Laravel con otros paquetes de Laravel?


De hecho, Laravel Pennant puede integrarse con otros paquetes de Laravel, y está diseñado con extensibilidad en mente para satisfacer diversas necesidades de aplicación, incluidos los escenarios de integración.

Conductores de almacenamiento personalizados para la integración

Laravel Pennant admite controladores de almacenamiento personalizados, lo que le permite crear su propio controlador para integrarse con otros paquetes o sistemas. Si los controladores incorporados (como el controlador de base de datos predeterminado) no cumplen con sus requisitos, puede implementar un controlador personalizado adhiriéndose a la interfaz `Laravel \ Pennant \ Contracts \ Driver`. Esta interfaz requiere que implemente métodos para definir características, recuperar y configurar indicadores de características y administrar datos de características.

Por ejemplo, puede crear un controlador de bandera de funciones basado en Redis implementando esta interfaz, permitiendo que el banderín almacene y recupere banderas de características de Redis. Este controlador personalizado se puede registrar en su aplicación Laravel a través del método `Feature :: Extend` dentro del método de un proveedor de servicios 'Boot`. Una vez registrado, puede configurar Pennant para usar este nuevo controlador en su archivo `config/pennant.php` en la matriz` tiendas '.

Esta flexibilidad permite que Laravel Pennant se integre con otros paquetes de Laravel o sistemas externos que proporcionan capacidades de marcado de características o backends de almacenamiento, como redis, plataformas de bandera de características de terceros o cualquier otro sistema que desee conectarse al banderín [7] [1].

Definición de características externamente

Si su integración involucra una plataforma de bandera de funciones de terceros, su controlador personalizado puede implementar la interfaz 'Laravel \ Pennant \ Contracts \ DefinesSeMeSexternally`. Esta interfaz incluye un método para recuperar características definidas fuera del banderín, lo que permite a Pennant actuar como envoltura o puente a los servicios de bandera de características externas. Esto significa que puede integrar el banderín de Laravel con los sistemas de gestión de banderas de características externas mientras usa la API de Pennant dentro de su aplicación Laravel [1].

Integración con el ecosistema de Laravel

Aunque Laravel Pennant es principalmente un paquete de bandera de características, se puede combinar con otros paquetes de Laravel, como Laravel Nova o paquetes de administración de usuarios personalizados, definiendo banderas de funciones alcanzadas para usuarios o equipos. El paquete admite indicadores de características de alcance a diferentes entidades, lo que le permite integrar la lógica de bandera de funciones con roles de usuario, permisos u otros modelos proporcionados por paquetes.

Si bien no existe un paquete oficial de integración de Laravel Nova para el banderín a partir de ahora, la extensibilidad de la API de Pennant y el sistema de controladores personalizados permite a los desarrolladores construir tales integraciones ellos mismos o integrarse con otros paquetes de Laravel de manera personalizada [4].

Resumen

- El banderín de Laravel se puede integrar con otros paquetes de Laravel creando controladores de almacenamiento personalizados que implementan la interfaz 'controlador', lo que le permite conectar el banderín a varios backends de almacenamiento o plataformas de terceros [7] [1].
- Puede definir las funciones externamente si usa plataformas de terceros implementando la interfaz `definesFeATureSeXternally` en su controlador personalizado [1].
- La integración con los paquetes del ecosistema de Laravel es factible a través de las capacidades de alcance y definición de características del banderín, aunque las integraciones oficiales (por ejemplo, con Laravel Nova) aún no existen y pueden requerir un desarrollo personalizado [4].
- El diseño del paquete fomenta la extensibilidad e integración, por lo que es adecuada para aplicaciones complejas de Laravel que requieren marcas de características combinadas con otras herramientas de Laravel.

Esto hace que Laravel Pennant sea una solución de bandera de características flexible e integrable dentro del ecosistema de Laravel.

Citas:
[1] https://laravel.com/docs/12.x/pennant
[2] https://articles.peterfox.me/laravel-feature-flags-choosing-a-package-974c33fbb91a
[3] https://laravel-news.com/feature-flags-with-laravel-pennant
[4] https://github.com/laravel/framework/discussions/48044
[5] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-laravel/
[6] https://bmehul.com/articles/laravel-pennant-a-guide-to-feature-flags
[7] https://laravel.com/docs/11.x/pennant
[8] https://dev.to/saurabh-dhariwal/how-to-manage-feature-flags-with-laravel-pennant-in-2024-1phb
[9] https://wpwebinfotech.com/blog/laravel-pennant-guide/