osd84 / discord-bundle
Symfony bundle: send alerts to a Discord channel through a webhook (curl, no HTTP client).
Requires
- php: >=8.2
- ext-curl: *
- ext-json: *
- symfony/config: ^7.4
- symfony/dependency-injection: ^7.4
- symfony/http-kernel: ^7.4
Requires (Dev)
- phpunit/phpunit: ^11.5
- symfony/framework-bundle: ^7.4
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-14 15:20:03 UTC
README
Bundle Symfony qui envoie des alertes dans un salon Discord par webhook.
Une seule classe, curl de PHP, aucune dépendance HTTP en plus.
Symfony bundle that posts alerts to a Discord channel through a webhook. One class, PHP curl, no extra HTTP client.
Installation
composer require osd84/discord-bundle
Sans Symfony Flex, déclarer le bundle dans config/bundles.php :
Osd84\DiscordBundle\Osd84DiscordBundle::class => ['all' => true],
Configuration
# config/packages/osd84_discord.yaml osd84_discord: webhook: '%env(DISCORD_WEBHOOK)%'
Webhook vide : aucun message n'est envoyé, send() rend false. Pratique en dev et en test.
Le webhook est un secret : il reste dans la config de chaque appli (.env.local, .env.local.php), jamais dans le code.
Utilisation
use Osd84\DiscordBundle\Discord; public function __construct(private Discord $discord) {} $this->discord->send('[ALERTE] compte bloque : admin@exemple.fr');
send()rendtruesi Discord a accepté le message,falsesinon.- Elle ne lève jamais d'exception : un Discord injoignable ne fait pas tomber l'appli. Délai maximum : 5 secondes.
- Un message de plus de 2000 caractères (limite de Discord) est coupé.
Tests
composer install php vendor/bin/phpunit
Licence
MIT.