symfony/ovh-cloud-notifier
Symfony Notifier transport for OVHcloud SMS. Configure an ovhcloud:// DSN with application key/secret, consumer key, service name, optional sender, and an option to remove the STOP clause for non-commercial messages.
Notifier component, which is compatible with Laravel’s event-driven architecture (Illuminate\Events, Illuminate\Queue). Laravel’s Http facade can replace Symfony’s HttpClient, and Illuminate\Bus can handle message dispatching, reducing dependency bloat.Notifier..env or config/services.php can store the OVHCLOUD_DSN (e.g., OVHCLOUD_DSN=ovhcloud://...), with validation via Laravel’s Validator or a custom config publisher.Route::post('/ovh-webhook', [OvhWebhookController::class, 'handle'])) with:
X-Ovh-Signature header (e.g., using spatie/laravel-hmac).OvhAlertReceived).Event::listen() or Bus::dispatch() to route OVH events to:
OvhAlertHandlerJob).OvhAlertBroadcasted).AppServiceProvider::boot():
public function boot(): void {
$this->app->bind(OvhClient::class, fn() => new OvhClient(
config('services.ovh.application_key'),
config('services.ovh.application_secret')
));
Event::listen(OvhAlertReceived::class, OvhAlertHandler::class);
}
HttpClient, EventDispatcher), which may conflict with the package’s dependencies.Illuminate\Http\Client for HTTP requests) or vendor-specific versions via composer require symfony/http-client:^6.4.webhook_events table with signature and processed_at columns.ShouldQueue with exponential backoff and a DLQ (e.g., failed_jobs table) for debugging.Http::fake() and Bus::fake() to mock OVH payloads and verify event dispatching.notifications table with status, retries, and sent_at timestamps.OvhAlertReceived) or fine-grained (e.g., OvhServerDown, OvhBillingOverdue)? Impact: Trade-off between flexibility and complexity.database/redis) or a dedicated queue (e.g., ovh-alerts)? Impact: Isolates failures and prioritizes critical alerts.APPLICATION_SECRET be rotated securely (e.g., via Laravel Forge or HashiCorp Vault)?spatie/laravel-polling.)Http, Queue) can replace Symfony dependencies where needed.symfony/notifier, symfony/http-client, and symfony/event-dispatcher. Laravel’s equivalents:
symfony/http-client → Illuminate\Http\Client (or Guzzle).symfony/event-dispatcher → Illuminate\Events.symfony/notifier → Custom event dispatching or spatie/laravel-notification-channels.config table).webhook_events table for deduplication).jobs table).redis or database cache).symfony/ovh-cloud-notifier to composer.json (with symfony/http-client as a replacement for Laravel’s Http)..env with OVHCLOUD_DSN and validate via php artisan config:clear./ovh-webhook) with HMAC validation middleware.OvhAlertReceived) and verify it triggers a queue job or broadcast.webhook_events table.via(SlackChannel::class)).symfony/http-client with Laravel’s Http facade in the package’s OvhClient class (or use a decorator pattern).Dsn class to Laravel’s config system (e.g., config('services.ovh')).Event facade instead of Symfony’s EventDispatcher.spatie/laravel-hmac or a custom middleware.database, redis, and beanstalkd for reliability.How can I help you explore Laravel packages today?