Laravel bindings and facade to generate imgix URLs and support for multiple sources.
You can install the package via composer:
composer require astrotomic/laravel-imgix
First you have to publish the packages configuration file via artisan command.
php artisan vendor:publish --provider="Astrotomic\Imgix\ImgixServiceProvider" --tag="config"
After this you will have a config/imgix.php
file.
The default
key which contains the name of your source you want to use by default.
The sources
key contains an array of your sources keyed by the name/identifier.
Each source must have a domain
. The other keys are optional and you can even omit them.
return [
'default' => 'default',
'sources' => [
'default' => [
'domain' => 'example.imgix.net', // domain only - without http(s)
// 'useHttps' => true, // default is true - you shouldn't change this
// 'signKey' => null, // your signing key for this domain
// 'includeLibraryParam' => true, // if you want to remove the `ixlib` param
],
'astrotomic' => [
'domain' => 'img.astrotomic.info',
'useHttps' => true,
'signKey' => 'mySecretSignKey',
'includeLibraryParam' => false,
],
],
];
The package provides a facade and global function you can use to get the pre-configured \Imgix\UrlBuilder
.
use Astrotomic\Imgix\Facades\Imgix;
Imgix::createURL('my/cool/image.jpg');
// https://example.imgix.net/my/cool/image.jpg?ixlib=php-3.3.0
Imgix::source('astrotomic')->createURL('logo.png');
// https://img.astrotomic.info/logo.png?s=200c1c2065023265285dcbc4eff99955
If you don't want to import the facade, you can use the global function which is an alias to the Imgix::source()
method.
imgix()->createURL('my/cool/image.jpg');
// https://example.imgix.net/my/cool/image.jpg?ixlib=php-3.3.0
imgix('astrotomic')->createURL('logo.png');
// https://img.astrotomic.info/logo.png?s=200c1c2065023265285dcbc4eff99955
There is a Blade component x-imgix
included in this package:
<x-imgix path="my-image.png" class="img-class" alt="My fancy image" />
Optional parameters:
source
: use one of the source defined in yourimgix.php
configwidth
: define the output width - will be added to the paramsheight
: define the output height - will be added to the paramsparams
: define the array of params passed to the Imgix API
You can publish the view by running
php artisan vendor:publish --provider="Astrotomic\Imgix\ImgixServiceProvider" --tag="views"
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details. You could also be interested in CODE OF CONDUCT.
If you discover any security related issues, please check SECURITY for steps to report it.
The MIT License (MIT). Please see License File for more information.
You're free to use this package, but if it makes it to your production environment I would highly appreciate you buying the world a tree.
It’s now common knowledge that one of the best tools to tackle the climate crisis and keep our temperatures from rising above 1.5C is to plant trees. If you contribute to my forest you’ll be creating employment for local families and restoring wildlife habitats.
You can buy trees at offset.earth/treeware
Read more about Treeware at treeware.earth