Package Laravel intégrant Glide pour la manipulation d'images à la volée avec support multi-serveurs et URLs signées.
composer require axn/laravel-glide
Publier la configuration :
php artisan vendor:publish --tag=glide-config
Générer la clé de signature :
php artisan glide:key-generate
| Fichier | Rôle |
|---|---|
config/glide.php |
Config principale (serveur par défaut, liste des serveurs) |
config/glide_servers/*.php |
Config par serveur |
Chaque serveur est configuré indépendamment avec :
| Option | Description |
|---|---|
source |
Disk filesystem source des images |
cache |
Disk filesystem pour le cache des images générées |
watermarks |
Disk filesystem pour les filigranes (optionnel) |
driver |
Driver image : gd ou imagick |
max_image_size |
Taille maximale en pixels (largeur × hauteur) |
signatures |
Activer les URLs signées |
sign_key |
Clé de signature (env GLIDE_SIGN_KEY) |
base_url |
URL de base du serveur |
defaults |
Manipulations par défaut |
presets |
Presets de manipulation nommés |
| Variable | Description |
|---|---|
GLIDE_IMAGE_DRIVER |
Driver image (gd ou imagick) |
GLIDE_SIGN_KEY |
Clé de signature (128+ caractères) |
use Axn\LaravelGlide\Facades\Glide;
// Générer une URL signée
$url = Glide::url('photo.jpg', ['w' => 300, 'h' => 200]);
// Retourner une réponse image
return Glide::imageResponse('photo.jpg', ['w' => 300]);
// Image en Base64
$base64 = Glide::imageAsBase64('photo.jpg', ['w' => 100]);
// Serveur par défaut
Glide::url('photo.jpg', ['w' => 300]);
// Serveur spécifique
Glide::server('avatars')->url('user.jpg', ['w' => 100, 'fit' => 'crop']);
Les presets sont définis dans la config de chaque serveur :
// Utiliser un preset
$url = Glide::url('photo.jpg', ['p' => 'small']);
graph TD
A[Facade Glide] --> B[ServerManager]
B --> C1[GlideServer 'images']
B --> C2[GlideServer 'avatars']
C1 --> D[League\Glide\Server]
C2 --> D
D --> E[LaravelResponseFactory]
| Classe | Rôle |
|---|---|
ServiceProvider |
Enregistre le singleton, publie la config, enregistre la commande |
ServerManager |
Gère les instances de serveurs, résout les disks |
GlideServer |
Wrapper autour de League\Glide\Server |
LaravelResponseFactory |
Adapter pour les réponses HTTP Laravel |
GlideKeyGenerate |
Commande Artisan glide:key-generate |
How can I help you explore Laravel packages today?