astrotomic / laravel-imgix
Laravel bindings and facade to generate imgix URLs and support for multiple sources.
Fund package maintenance!
Gummibeer
SarahSibert
Issuehunt
forest.astrotomic.info
Installs: 19 997
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 4
Forks: 4
Open Issues: 0
Requires
- php: ^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3
- illuminate/contracts: ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/view: ^7.9 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- imgix/imgix-php: ^3.3.0 || ^4.1
Requires (Dev)
- gajus/dindent: ^2.0
- orchestra/testbench: ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- phpunit/phpunit: ^9.3 || ^10.5
README
Laravel bindings and facade to generate imgix URLs and support for multiple sources.
Installation
You can install the package via composer:
composer require astrotomic/laravel-imgix
Configuration
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, ], ], ];
Usage
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
Blade component
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"
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details. You could also be interested in CODE OF CONDUCT.
Security
If you discover any security related issues, please check SECURITY for steps to report it.
Credits
License
The MIT License (MIT). Please see License File for more information.
Treeware
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