imgproxy URL Builder is a PHP library for generating imgproxy
URLs in a type-safe, immutable, and composable way.
- Immutable URL builder object
- Fluent API via method chaining
- Extensible test suite
- Supports all
imgproxyoptions - Supports
imgproxychained pipelines - Supports
imgproxysource URL masking - Supports
imgproxyURL signing
composer require somehow-digital/imgproxyBasic URL
use SomehowDigital\ImgProxy\Url;
$url = new Url();
$url = $url->source('https://example.com/image.jpg');
$url = $url->options(
new Width(100),
new Height(100),
);
$url->build(); // _/w:100/h:100/plain/https%3A%2F%2Fexample.com%2Fimage.jpgChained pipeline
use SomehowDigital\ImgProxy\Url;
$url = new Url();
$url = $url->source('https://example.com/image.jpg');
$url = $url->options(
new Crop(1000, 1000),
[
new Width(100),
new Height(100),
],
);
$url->build(); // _/c:1000:1000/-/w:100/h:100/plain/https%3A%2F%2Fexample.com%2Fimage.jpgBase64-Encoded Source URL
use SomehowDigital\ImgProxy\Url;
$url = new Url(
new EncodingMasker(),
);
$url = $url->source('https://example.com/image.jpg');
$url = $url->options(
new Width(100),
new Height(100),
);
$url->build(); // _/w:100/h:100/aHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5qcGcHMAC-Encrypted Source URL
use SomehowDigital\ImgProxy\Url;
$url = new Url(
new EncryptionMasker(ENCRYPTION_KEY),
);
$url = $url->source('https://example.com/image.jpg');
$url = $url->options(
new Width(100),
new Height(100),
);
$url->build(); // _/w:100/h:100/enc/p5VjorNdhs7mRRw8.jpgSigned URL
use SomehowDigital\ImgProxy\Url;
$url = new Url(
new EncryptionMasker(ENCRYPTION_KEY),
new Signer(SIGNATURE_KEY, SIGNATURE_SALT),
);
$url = $url->source('https://example.com/image.jpg');
$url = $url->options(
new Width(100),
new Height(100),
);
$url->build(); // oKfUtW34Dvo2BGQe/w:100/h:100/enc/p5VjorNdhs7mRRw8.pngFluent API
use SomehowDigital\ImgProxy\Url;
$url = Url::create(
new EncryptionMasker(ENCRYPTION_KEY),
new Signer(SIGNATURE_KEY, SIGNATURE_SALT),
)
->source('https://example.com/image.png')
->options(
new Width(100),
new Height(100),
)
->build(); // oKfUtW34Dvo2BGQe/w:100/h:100/enc/p5VjorNdhs7mRRw8.png