1. Go to this page and download the library: Download rasuvaeff/yii3-webhooks-db 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/ */
rasuvaeff / yii3-webhooks-db example snippets
use Psr\Clock\ClockInterface;
use Rasuvaeff\Yii3Webhooks\WebhookDelivery;
use Rasuvaeff\Yii3WebhooksDb\DbNonceStorage;
use Rasuvaeff\Yii3WebhooksDb\DbWebhookDeliveryStorage;
$deliveries = new DbWebhookDeliveryStorage(db: $db);
$nonces = new DbNonceStorage(db: $db, clock: $clock);
$delivery = WebhookDelivery::create(event: $event, endpoint: $endpoint);
$deliveries->save(delivery: $delivery);
$accepted = $nonces->add(nonce: $signature->getValue());
$now = $clock->now();
$batch = $deliveries->claimReady(
now: $now,
readyThresholds: $policy->readyThresholds($now),
maxAttempts: $policy->getMaxAttempts(),
leaseSeconds: 300,
limit: 100,
);
foreach ($batch as $delivery) {
// ... deliver, then move it out of the claim:
// $deliveries->markDelivered($delivery->withAttempt($now));
// $deliveries->markFailed($delivery->withAttempt($now, error: $error));
// or, for a retryable failure:
// $deliveries->save($delivery->withAttempt($now, error: $error));
// $deliveries->releaseClaim($delivery);
}
if (!$storage instanceof ClaimingDeliveryStorage) {
throw new RuntimeException($storage::class . ' cannot claim; run a single worker instead');
}