Download the PHP package andydefer/laravel-images without Composer

On this page you can find all versions of the php package andydefer/laravel-images. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-images

Laravel Images - Documentation

Table des matières

  1. Installation
  2. Configuration
  3. Concepts de base
  4. Gestion des images
  5. Gestion des albums
  6. Processeurs d'images
  7. Stockage
  8. Directives CLI
  9. Exemples complets
  10. API Référence
  11. Événements automatiques
  12. Relations inverses (Light/Dark)

1. Installation

Prérequis

Publier les migrations

Publier la configuration


2. Configuration

Fichier de configuration

Variables d'environnement


3. Concepts de base

3.1 Image

Une image est un modèle Eloquent qui représente un fichier image stocké sur le disque.

3.2 Album

Un album regroupe plusieurs images avec un ordre défini.

3.3 Relations polymorphiques

Les images et albums utilisent des relations polymorphiques (morphTo, morphToMany) pour s'attacher à n'importe quel modèle Eloquent.

3.4 Trait HasMediables

Le package fournit un trait HasMediables pour ajouter des attributs calculés à vos modèles.

Installation dans un modèle

Attributs disponibles

Attribut Type Description
has_images bool Vérifie si le modèle a des images
images_count int Nombre total d'images
primary_image Image|null Image principale
avatar Image|null Image de type AVATAR
cover Image|null Image de type COVER
banner Image|null Image de type BANNER
logo Image|null Image de type LOGO
icon Image|null Image de type ICON
gallery_images Collection<Image> Images de type GALLERY
has_albums bool Vérifie si le modèle a des albums
albums_count int Nombre total d'albums
primary_album Album|null Premier album créé
featured_album Album|null Album mis en avant
public_albums Collection<Album> Albums publics
private_albums Collection<Album> Albums privés

Exemple d'utilisation


4. Gestion des images

4.1 Upload d'une image

4.2 Upload multiple

4.3 Récupération des images

4.4 Mise à jour

4.5 Suppression

4.6 Miniatures


5. Gestion des albums

5.1 Création d'un album

5.2 Gestion des images d'un album

5.3 Récupération des albums

5.4 Gestion de la couverture

5.5 Mise à jour et suppression


6. Processeurs d'images

6.1 GD vs Imagick

Feature GD Imagick
Disponibilité ✅ Par défaut ⚠️ Installation requise
Performance Bonne Excellente
Qualité Bonne Supérieure
Formats supportés JPG, PNG, GIF, WebP JPG, PNG, GIF, WebP, HEIC, AVIF, TIFF
Utilisation new GdImageProcessor() new ImagickImageProcessor()

6.2 Utilisation du processeur

6.3 Redimensionnement avancé


7. Stockage

7.1 Configuration du stockage

Note : Le stockage utilise des chemins relatifs au dossier courant d'exécution. Aucun préfixe n'est ajouté automatiquement.

7.2 Opérations de stockage


8. Directives CLI

8.1 Installation de la CLI

Le package fournit une directive CLI pour la gestion des images :

Directive Alias Description
images:scan ims Scanne un dossier et génère un inventaire JSON ou PHP

8.2 Commande de scan

Paramètres :

Paramètre Description
{source} Dossier source à scanner
{output} Fichier de sortie (.json ou .php)
{depth=0} Profondeur maximale de scan (0 = illimitée)
{extensions*} Extensions d'images à inclure (ex: png jpg webp ou [png,jpg])
{excludes*} Dossiers à exclure du scan
{--hash} Inclut le hash MD5 de chaque image
{--relative} Rend les chemins relatifs au répertoire source

Exemples :

Exemple de sortie JSON (sans --relative) :

Exemple de sortie JSON (avec --relative) :

Exemple de sortie PHP :

8.3 Exemple de sortie du scan


9. Exemples complets

9.1 Upload d'avatar avec options

9.2 Galerie d'images

9.3 Export d'images avec filtrage

9.4 Audit d'images avec scan CLI


10. API Référence

ImageService

Méthode Description
findImage(string $id): ?Image Trouve une image par UUID
upload(...): Image Upload une image
uploadMultiple(...): Collection Upload plusieurs images
update(ImageRecord $record, string $id): Image Met à jour une image
delete(string $id, bool $deleteFile): void Supprime une image
deleteMultiple(array<string> $ids, bool $deleteFile): void Supprime plusieurs images
deleteAllForModel(Model $model, bool $deleteFile): void Supprime toutes les images d'un modèle
getImagesForModel(Model $model, ?ImageType $type): Collection Récupère les images d'un modèle
getPrimaryImage(Model $model): ?Image Récupère l'image principale
setAsPrimary(string $id, Model $model): void Définit une image comme principale
countImages(Model $model, ?ImageType $type): int Compte les images
getImagesUpdatedAfter(DateTimeVO $date): Collection Images mises à jour après une date
reorder(array<string> $ids): void Réorganise les images
getThumbnailUrl(string $imageId, string $size): string URL de la miniature
syncInverseRelation(Image $image): void Synchronise la relation inverse (light/dark)
getImageProcessor(): ImageProcessorInterface Retourne le processeur
getStorage(): ImageStorageInterface Retourne le stockage

AlbumService

Méthode Description
createAlbum(...): Album Crée un album
addImagesToAlbum(Album $album, array<string> $imageIds): void Ajoute des images
addImageToAlbum(Album $album, string $imageId, int $order): void Ajoute une image
removeImageFromAlbum(Album $album, string $imageId): void Retire une image
removeAllImagesFromAlbum(Album $album): void Vide un album
setCoverImage(Album $album, string $imageId): void Définit la couverture
getAlbumImages(Album $album): Collection Images d'un album
getAlbumsForModel(Model $model, bool $onlyPublic): Collection Albums d'un modèle
getAlbumBySlug(string|SlugVO $slug): ?Album Album par slug
updateAlbum(string $id, AlbumOptionsRecord $options): Album Met à jour un album
deleteAlbum(string $id, bool $deleteImages): void Supprime un album
reorderAlbumImages(Album $album, array<string> $imageIds): void Réorganise les images
duplicateAlbum(Album $album, string $newName): Album Duplique un album
countAlbumImages(Album $album): int Compte les images
isAlbumEmpty(Album $album): bool Vérifie si l'album est vide
getAlbumCoverImage(Album $album): ?Image Image de couverture
getFeaturedAlbums(int $limit): Collection Albums mis en avant

ImageType

Type Description
AVATAR Photo de profil
COVER Photo de couverture
GALLERY Galerie d'images
THUMBNAIL Miniature
ATTACHMENT Pièce jointe
LOGO Logo
ICON Icône
BANNER Bannière
PRODUCT Image de produit

BinaryChoice

Valeur Description
YES Oui
NO Non

11. Événements automatiques

Le package utilise des observers Eloquent pour automatiser certaines opérations critiques sans intervention manuelle.

11.1 ImageObserver

L'ImageObserver gère automatiquement les relations inverses entre les variantes d'images (claires/sombres) et maintient l'intégrité référentielle.

Événement Action automatique Description
created syncInverseRelation() Lorsqu'une nouvelle image est créée, le système détecte automatiquement si c'est une variante -light ou -dark et la lie à son homologue si elle existe dans le même contexte (même modèle parent, même type).
updated syncInverseRelation() Lorsque le nom de fichier d'une image est modifié, la relation inverse est réévaluée pour maintenir la cohérence.
deleted inverse_image_id = null Lorsqu'une image est supprimée, toutes les images qui la référencent comme inverse_image_id voient cette référence automatiquement mise à null pour éviter les orphelins.

Exemple concret :

11.2 AlbumObserver

L'AlbumObserver maintient l'intégrité des relations entre albums et images.

Événement Action automatique Description
deleting images()->detach() Avant la suppression (soft delete) d'un album, toutes les relations avec ses images sont automatiquement détachées pour éviter les enregistrements orphelins dans la table pivot.
forceDeleted images()->detach() Lors de la suppression définitive d'un album, les relations sont également nettoyées pour maintenir la cohérence.

Exemple concret :


12. Relations inverses (Light/Dark)

12.1 Principe

Le package supporte nativement la gestion des paires d'images inverses (light/dark) grâce à la colonne inverse_image_id dans la table images. Cette fonctionnalité est particulièrement utile pour :

12.2 Comment ça fonctionne

La détection des paires se base sur la convention de nommage des fichiers :

Variante Pattern Exemple
Dark *-dark.* logo-dark.png, banner-dark.jpg
Light *-light.* logo-light.png, banner-light.jpg

12.3 Synchronisation automatique

La synchronisation est entièrement automatique via l'ImageObserver :

  1. Création : Lorsque vous uploadez une image avec un nom contenant -light ou -dark, le système recherche automatiquement son homologue dans le même contexte (même imageable_type, imageable_id et type).

  2. Liaison : Si l'homologue existe, les deux images sont liées bidirectionnellement via inverse_image_id.

  3. Nettoyage : Si l'homologue est supprimé, la référence est automatiquement mise à null.

12.4 Utilisation

12.5 Synchronisation manuelle

Bien que la synchronisation soit automatique, vous pouvez également la déclencher manuellement :

12.6 Cas d'usage avancé

12.7 Limitations


Licence

MIT © Andy Defer


All versions of laravel-images with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
intervention/image Version ^3.0
andydefer/laravel-utils Version ^0.10.98
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package andydefer/laravel-images contains the following files

Loading the files please wait ...