Laravel Pennant est un package de drapeau léger conçu pour permettre le déploiement incrémentiel et la gestion des fonctionnalités d'application avec facilité. Il prend en charge plusieurs pilotes de stockage, y compris un tableau en mémoire, une base de données et des pilotes personnalisés tels que Redis [2]. Laravel Horizon, en revanche, est un tableau de bord et un outil de surveillance spécifiquement pour les files d'attente Redis de Laravel, fournissant des informations en temps réel sur le traitement des files d'attente et l'état du travail [1] [4].
En ce qui concerne l'utilisation de Laravel Pennant avec Laravel Horizon pour le signalement des fonctionnalités en temps réel, il n'y a pas d'intégration directe ou de connexion intégrée entre les deux packages. Laravel Horizon se concentre sur la surveillance et la gestion des files d'attente, tandis que Pennant gère les indicateurs de drapeaux et leur logique d'évaluation. Cependant, vous pouvez architer une solution qui exploite les deux:
- Conducteur de pennant personnalisé à l'aide de Redis: Pennant permet la création de pilotes de drapeaux de fonctionnalité personnalisés, y compris celui qui peut utiliser Redis comme magasin backend. Vous pouvez implémenter un pilote de drapeau de fonctionnalité basé sur Redis pour Pennant, qui peut stocker et mettre à jour les indicateurs de fonctionnalité dans Redis. Cette approche peut faciliter les mises à jour en temps réel et les vérifications de l'indicateur à faible latence [2].
- Travaux de file d'attente et surveillance de l'horizon: si votre application met à jour les indicateurs de fonctionnalités de fonction de manière asynchrone (par exemple, via des travaux en file d'attente qui modifient les drapeaux dans redis), Laravel Horizon peut surveiller ces travaux en temps réel. Cette configuration vous permet de suivre les processus qui modifient les indicateurs de fonctionnalité mais ne fournissent pas d'interface de gestion des indicateurs de fonctionnalité directe.
- Événements et métriques: Pennant dépasse les événements lorsque les fonctionnalités sont vérifiées ou résolues, que vous pouvez écouter et potentiellement pousser des métriques ou des notifications via le système d'événements de Laravel. Bien que Horizon n'affiche pas nativement les métriques des indicateurs de fonctionnalité, vous pouvez créer des tableaux de bord personnalisés ou des outils de surveillance qui agrégent ces événements aux côtés de la surveillance des files d'attente d'Horizon [2].
- Pas de tableau de bord pour les drapeaux de fonction à Horizon: à partir de maintenant, il n'y a pas de tableau de bord Horizon officiel ou de la communauté pour gérer ou visualiser les drapeaux de fonction Laravel Pennant. Les discussions dans la communauté indiquent l'intérêt pour un tel outil, mais il n'existe pas encore [3].
En résumé, Laravel Pennant peut être utilisé aux côtés de Laravel Horizon dans une application Laravel, mais ils servent des objectifs différents. Pennant gère des drapeaux de traits, potentiellement avec un backend Redis pour des performances en temps réel, tandis que Horizon surveille les files d'attente et les travaux Redis. La fonctionnalité de fonctionnalité en temps réel avec Pennant peut être réalisée en utilisant Redis comme backend et en tirant parti du système d'événements de Laravel, mais Horizon lui-même ne fournit pas de capacités de gestion ou de visualisation de drapeaux de fonctionnalité.
Ainsi, bien que vous puissiez utiliser les deux dans la même application et même les faire interagir indirectement via Redis et les files d'attente, Laravel Pennant et Laravel Horizon ne sont pas intégrés hors de la boîte pour la caractéristique en temps réel [1] [2] [3] [4].
Citations:
[1] https://laravel.com/docs/11.x/horizon
[2] https://laravel.com/docs/12.x/Pennant
[3] https://www.reddit.com/r/laravel/comments/13htk4p/laravel_pennant_management/
[4] https://www.youtube.com/watch?v=r3c_qbvahxa
[5] https://laravel-news.com/feature-flags-with-laravel-pennant
[6] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-lavavel/
[7] https://wpwebinfotech.com/blog/laravel-pennant-guide/
[8] https://dev.to/saurabh-dhariwal/how-to-manage-feature-flags-with-laravel-pennant-in-2024-1phb