Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Webhook Laravel Package

symfony/webhook

Symfony Webhook component simplifies sending and consuming webhooks in Symfony apps. Provides tools for signing/verification, payload handling, and endpoint integration, with full documentation and contributions managed in the main Symfony repository.

View on GitHub
Deep Wiki
Context7

Eases sending and consuming webhooks

Frequently asked questions about Webhook
Can I use Symfony’s Webhook component in Laravel for handling Stripe webhook events?
Yes, the component integrates smoothly with Laravel. Use the `Webhook` class to validate Stripe’s HMAC signatures and parse JSON payloads, then dispatch Laravel events (e.g., `StripeWebhookReceived`) for business logic. The built-in `RequestParserInterface` supports Stripe’s payload structure out of the box.
How do I install Symfony Webhook in a Laravel 10+ project?
Run `composer require symfony/webhook` and ensure PHP 8.1+ is installed. No Laravel-specific dependencies are required—it works alongside existing Symfony components like `symfony/http-client`, which Laravel already uses. No service provider registration is needed for basic usage.
Does Symfony Webhook support async processing for high-volume webhooks in Laravel?
Yes, leverage Laravel’s queue system or Symfony’s `Messenger` component for async retries. Wrap `Webhook::send()` with `withRetry()` and process deliveries via Laravel Horizon or queues. For inbound webhooks, dispatch events (e.g., `WebhookReceived`) and handle them asynchronously.
How do I validate webhook signatures (e.g., GitHub or custom HMAC) in Laravel?
Use the `Webhook` class with a `RequestParser` configured for your signature algorithm. For GitHub, extend `JsonRequestParser` and override `supports()` to check headers. Laravel’s middleware can pre-validate signatures before Symfony processes the payload, reducing boilerplate.
Will Symfony Webhook work with Laravel’s Scout for indexing webhook-triggered data?
Absolutely. Trigger Scout index updates via Laravel events dispatched after processing webhooks (e.g., `WebhookProcessed`). The component’s stateless design ensures no conflicts with Scout’s database operations, making it ideal for real-time search-as-you-type use cases.
Can I mock webhook payloads in Laravel tests without hitting external APIs?
Yes, Symfony Webhook provides tools to simulate payloads in PHPUnit. Use `Webhook::createFromRequest()` with a `MockRequest` or override `RequestParserInterface` to return test data. Laravel’s HTTP tests can also stub the `symfony/http-client` for outbound webhook testing.
What’s the performance impact of using Symfony Webhook vs. raw Laravel HTTP clients?
The component adds ~10–15% overhead for outbound webhooks due to abstraction layers (e.g., retries, serialization). For critical paths, use `Http::withOptions()` to bypass Symfony’s client when fine-grained control is needed. Benchmark with tools like Blackfire to optimize if required.
How do I handle non-JSON webhook payloads (e.g., XML, custom binary) in Laravel?
Extend `RequestParserInterface` to support your format. For XML, create a `XmlRequestParser` implementing `parse()` and `supports()`. Symfony’s `Serializer` component (already in Laravel) can help deserialize payloads. Document custom parsers in your project for maintainability.
Are there Laravel-specific alternatives to Symfony Webhook for webhook handling?
Laravel-native options like `spatie/webhook-client` or `fruitcake/laravel-webhook-handler` focus on simplicity but lack Symfony’s extensibility (e.g., custom parsers, async retries). Symfony Webhook is better for complex integrations (e.g., multi-format payloads) while remaining framework-agnostic.
How do I secure my Laravel webhook endpoints against replay attacks or IP spoofing?
Use Laravel middleware to validate IP ranges before Symfony processes the request. Store HMAC secrets in Laravel’s `.env` and rotate them via `config/webhook.php`. For idempotency, track webhook deliveries in Laravel’s database or Redis using Symfony’s `Webhook::send()` with `idempotencyKey`.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony