campaigningbureau / laravel-static-image-cache
store/cache external images as a static file
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
- illuminate/console: ^10.0||^11.0
- illuminate/filesystem: ^10.0||^11.0
- illuminate/http: ^10.0||^11.0
- illuminate/routing: ^10.0||^11.0
- illuminate/support: ^10.0||^11.0
README
store/cache external images as a static file
Replaces URIs by a proxy route.
When this proxy route is called, the original image is cached inside the configured directory and returned.
If the requested file was already cached, it is instead directly returned by the webserver.
Installation
composer require campaigningbureau/laravel-static-image-cache
Supported versions
Setup
Add the service provider to the app.php
provider array
/* * Package Service Providers... */ CampaigningBureau\LaravelStaticImageCache\Provider\LaravelStaticImageCacheProvider::class,
Usage
This Package provides two helper functions: static_image
and statify_text
static_image
The static_image
-helper can be used to generate the static file url for a given image url.
<img src="{{ static_image('https://images.domain.com/my-image.jpg') }}" alt="An external image">
statify_text
This helper function automatically statifies images from all domains that are configured in the statify_domains
config entry inside the given string.
Usage:
if (function_exists('statify_text')) { $text = statify_text($text); }
Clear the files
To clear all cached files manually you can use an artisan task.
php artisan static-image-cache:clear
Configuration
-
enabled
: defines, if proxying and storing of the images is activated. Can be set totrue
,false
ordebug
(Ifdebug
the package will synchronise the flag with theapp.debug
config value) -
cache_path_prefix
: The path prefix relative topublic_path
. This is where the images will be stored. This path will also be used as the proxy-url prefix. -
statify_domains
: Holds an array of all domains that will be statified when calling thestatify_text
function.
Upgrade guide
From v1.x to v2.0
all usages of staticImage()
need to be replaced by the new static_image()
function.