Generate a full url from an image slug
composer require mapado/image-url-builder
use Mapado\ImageUrlBuilder\Builder;
$builder = new Builder();
$width = 800;
$height = 600;
$url = $builder->buildUrl('2018/01/foo.jpg', $width, $height);
// will output '//img.mapado.net/2018/01/foo_thumbs/800-600.jpg'
The first parameter of the buildUrl
function accept an image "slug" or a full image url (starting with https://img.mapado.net/
)
If you want to force http prefix, you can use the withHttpPrefix()
or withHttpsPrefix()
function before :
$httpUrl = $builder
->withHttpPrefix()
->buildUrl($slug, $width, $height);
// will output `http://img.mapado.net/xxxx...`
$httpsUrl = $builder
->withHttpsPrefix()
->buildUrl($slug, $width, $height);
// will output `https://img.mapado.net/xxxx...`
A Twig extension is available : Mapado\ImageUrlBuilder\Twig\UrlBuilderExtension
You need to inject an instance of Mapado\ImageUrlBuilder\Builder
to the constructor.
If you are using Symfony, the following configuration do work fine:
services:
Mapado\ImageUrlBuilder\Builder: ~
Mapado\ImageUrlBuilder\Twig\UrlBuilderExtension:
tags:
- { name: twig.extension }
You can use the filter like this:
<img src="{{ imageSlug|imageUrl(width, height) }}" />