Laravel integration
If your application uses the Laravel framework, you can use the LaravelResponseFactory
. Since Laravel uses HttpFoundation
under the hood, this adapter actually extends the Symfony adapter.
Installation
composer require league/glide-laravel
Configuration
<?php
use League\Glide\ServerFactory;
use League\Glide\Responses\LaravelResponseFactory;
$server = ServerFactory::create([
'response' => new LaravelResponseFactory(app('request'))
]);
Working example
Here is a fully functioning example of how to get Glide up and running with Laravel really quick. First, create a new entry in your routes file:
<?php
Route::get('/img/{path}', 'ImageController@show')->where('path', '.*');
Next, create a controller that will serve all your Glide images. This will use the default Laravel storage path (/storage/app
) for the source images.
<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\Filesystem\Filesystem;
use League\Glide\Responses\LaravelResponseFactory;
use League\Glide\ServerFactory;
class ImageController extends Controller
{
public function show(Filesystem $filesystem, $path)
{
$server = ServerFactory::create([
'response' => new LaravelResponseFactory(app('request')),
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.cache',
'base_url' => 'img',
]);
return $server->getImageResponse($path, request()->except(['expires', 'signature']));
}
}