Weave 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

Fos Http Cache Cloudfront Laravel Package

jean-beru/fos-http-cache-cloudfront

CloudFront proxy implementation for FOSHttpCache. Create an AWS CloudFront client, instantiate the proxy with your distribution ID, purge single URLs or wildcard patterns, then call flush(). Supports custom caller reference generators to avoid duplicate requests.

View on GitHub
Deep Wiki
Context7

CloudFront implementation of FOSHttpCache

Latest Version Total Downloads Monthly Downloads Software License Tests

This library provides an implementation of FOSHttpCache for CloudFront.

Usage

Initialize dependency

First, create an instance of AsyncAws\CloudFront\CloudFrontClient to allow the proxy to make requests. See aws-sdk-php documentation for more information.

use Aws\CloudFront\CloudFrontClient;

$client = new CloudFrontClient(/* client configuration */);

Create the CloudFront proxy

To instantiate the proxy, pass the CloudFront client and the AWS CloudFront distribution ID.

use JeanBeru\HttpCacheCloudFront\Proxy\CloudFront;

$proxy = new CloudFront(
    client: $client,
    options: [
      'distribution_id' => 'XYZ1234657',
    ],
);

Invalidate URLs

To invalidate /homepage URL and all URLs matching the /assets/* pattern on the "XYZ1234657" distribution.

$proxy
    ->purge('/homepage')
    ->purge('/assets/*')
    // To send the purge request, flush() method must be called
    ->flush()
; 

Avoid request duplication

CloudFront APIs asks for a "caller reference" to avoid duplicated requests. By default, this library use the UniqIdCallerReferenceGenerator to generate a unique identifier.

You can use other generators present in the CallerReference folder or implement your own by implementing the CallerReferenceGenerator interface.

For instance, if you want to avoid duplicate calls in the same minute:

use JeanBeru\HttpCacheCloudFront\Proxy\CloudFront;
use JeanBeru\HttpCacheCloudFront\CallerReference\DateCallerReferenceGenerator;

$proxy = new CloudFront(
    client: $client,
    options: [
      'distribution_id' => 'XYZ1234657',
      'caller_reference_generator' => new DateCallerReferenceGenerator('YmdHi'),
    ],
);

If a duplication is detected by AWS, a FOS\HttpCache\Exception\ProxyResponseException will be thrown.

Resources

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator