1. Go to this page and download the library: Download crumbls/fanout library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
crumbls / fanout example snippets
// in your existing webhook controller / job
use Crumbls\Fanout\Facades\Fanout;
public function handle(Request $request): Response
{
$payload = $request->all();
// ...your existing production logic...
Fanout::dispatch('stripe-prod', $payload, $request->headers->all());
return response()->noContent();
}
namespace App\Webhooks;
use Crumbls\Fanout\Contracts\PayloadFilter;
use Crumbls\Fanout\Models\FanoutEvent;
use Crumbls\Fanout\Support\EndpointConfig;
class DropTestEvents implements PayloadFilter
{
public function shouldDeliver(array $payload, EndpointConfig $endpoint, ?FanoutEvent $event): bool
{
// For Stripe-style sources: livemode=false means it's a test event
return ! ($payload['livemode'] ?? true);
}
}
namespace App\Webhooks;
use Crumbls\Fanout\Contracts\PayloadTransformer;
use Crumbls\Fanout\Models\FanoutEvent;
use Crumbls\Fanout\Support\EndpointConfig;
class StripPii implements PayloadTransformer
{
public function transform(array $payload, EndpointConfig $endpoint, ?FanoutEvent $event): array
{
unset(
$payload['data']['object']['email'],
$payload['data']['object']['phone'],
$payload['data']['object']['shipping']['address'],
);
return $payload;
}
}