Notification facade, making it a natural fit for applications already using Laravel’s event/queue system (e.g., bus:dispatch, queue:work).Http::post), which can be mocked or replaced (e.g., for testing or Guzzle integration).config('services.pagerduty'), enabling environment-specific setups (e.g., staging vs. production).via('pagerduty')->pagerduty($customEvent)), accommodating PagerDuty’s event API.retry-after middleware)..env is insecure. Mitigation: Use Laravel’s env() or a secrets manager (e.g., AWS Secrets Manager).Http::fake() or PestPHP’s fake() helpers.FailedJob, Auth.Failed)? Avoid alert fatigue.Notification system, requiring no additional infrastructure.database, redis, beanstalkd) to decouple alert sending from HTTP requests, improving reliability.NotificationFake, HttpTests).critical, warning, info).composer require laravel-notification-channels/pagerduty
php artisan vendor:publish --provider="NotificationChannels\PagerDuty\PagerDutyServiceProvider"
.env:
PAGERDUTY_KEY=your_api_key_here
PAGERDUTY_SERVICE_ID=your_service_id
use NotificationChannels\PagerDuty\PagerDutyMessage;
use NotificationChannels\PagerDuty\PagerDutyChannel;
class DeployFailedNotification extends Notification
{
public function via($notifiable)
{
return [PagerDutyChannel::class];
}
public function toPagerDuty($notifiable)
{
return (new PagerDutyMessage)
->severity('critical')
->title('Deployment Failed')
->description('Pipeline failed on stage: production')
->source('laravel-app')
->customData(['commit' => 'abc123']);
}
}
$user->notify(new DeployFailedNotification());
Http::fake() to verify event payloads.composer.json constraints).Notifiable interface, so works with users, teams, or custom Notifiable models.LogEntryCreated) to validate payloads and costs.PaymentFailed) with queue-based retries..env or a secrets manager to avoid hardcoding.failed_jobs table.queue:failed table and PagerDuty’s webhooks for debugging.How can I help you explore Laravel packages today?