Créer une galerie de photos (Etape 3)

Bonjour à tous,

Après avoir débuté la fabuleuse aventure qu’est la création d’une galerie photo, nous avions vite faite de la rendre plus jolie mais surtout plus utile grâce à sa gestion automatique des sous-galeries.

Alors aujourd’hui, plutôt que la rendre encore plus jolie, nous allons nous attarder sur la propreté du code en regard de son développement et de sa maintenance future. Pour cela nous allons placer le code pure dans une nouvelle class qu’on nommera audacieusement galerie.class.php

Ceci n'est pas un objet PHP!

Ceci n'est pas un objet PHP!

Nous allons donc créer une nouvelle class permettant d’instancier un nouvel objet galerie à partir duquel nous pourrons accéder à moult méthodes utiles dans l’agencement de la galerie.
Nous pourrons donc désormais transformer notre fichier explore.php en un fichier de mise en page de la galerie. Sympa, non?

Regardons désormais du côté du code de notre fichier galerie.class.php avant d’analyser son synopsis:

  1. span class= »coMULTI »>/*     Nouvelle liste des fichiers  *//* On récupère la liste complète des images, et la réduite des miniature */‘*.{jpg, jpeg, png, gif, JPG, JPEG, PNG, GIF}’‘mini_*.{jpg, jpeg, png, gif, JPG, JPEG, PNG, GIF}’/* On trie afin de ne conserver QUE les originales *//* On liste les dossiers */‘*’/*    Renvoie la miniature associée à l’image $photo */‘mini_’ », $photo); //On récupère uniquement le nom du fichier 
  2. /*  Renvoie le chemin vers le dossier/fichier à partir du dossier courant */ », $repertoire);
  3.     }
  4.  
  5.     /*  Actualise les miniatures *///charge l’image originale
  6. ‘tailles’)->recadrer(100,100); //recadre l’image en 100×100
  7. ‘effets’//ajoute un arrondi blanc de 20px de rayon
  8. ‘mini_’.$name); //sauve la miniature
  9. //vide le cache

Et maintenant son synopsis:

__construct(string $dir): Instancie un nouvel objet galerie. Itinialise les variables publiques de la class en fonction du répertoire fourni. (Et actualise automatiquement les miniatures)

mini(string $photo [, boolean $with_dir]): Renvoie la miniature associée à l’image $photo accompagné, si demandé, du répertoire complet à partir de la racine.

link_to(string $repertoire): Renvoie le chemin vers le dossier/fichier à partir du dossier courant.

actualiser_miniatures([boolean $forcer]): Actualise les miniatures et permet de forcer la recréation de celles-ci (pratique en cas de désir de changement d’apparence de celles-ci).

Désormais, le code à intégrer au milieu de mes balises HTML dans mon fichier explore.php se résume à celui-ci:

  1. span class= »st0″>’image.class.php’; //On charge notre classe personnelle de traitement d’images
  2. ‘galerie.class.php’; //On charge notre classe personnelle de traitement d’images
  3. ‘REQUEST_URI’‘<a href="’‘">’.$item."</a><br>\r\n"‘<a href="’‘"><img src="’‘"></a> ‘

Petite curiosité au passage que l’utilisation nécessaire du substr(… ,1) pour enlever le slash gênant au début de mon répertoire pour pouvoir l’utiliser dans ma class. Une sombre histoire d’accès et de fichiers inclus, je suppose…

Tags: , , , ,