Skip to content

📖 docs(readme): ajouter l'exemple du cas d'usage réel#22

Merged
ronan-develop merged 1 commit into
mainfrom
docs/exemple-boucle
Jul 16, 2026
Merged

📖 docs(readme): ajouter l'exemple du cas d'usage réel#22
ronan-develop merged 1 commit into
mainfrom
docs/exemple-boucle

Conversation

@ronan-develop

Copy link
Copy Markdown
Owner

Traiter un dossier de photos est ce que fera l'immense majorité des utilisateurs. C'est aussi ce qui montre le mieux la dégradation gracieuse : un seul catch, un continue, et aucun fichier non-RAW ne casse la boucle.

foreach (glob('/photos/*') as $path) {
    try {
        $preview = $extractor->extract($path);
        file_put_contents("/thumbs/" . basename($path) . '.jpg', $preview->jpegData);
    } catch (RawPreviewExtractorException) {
        continue;  // not a RAW, no preview, or corrupt — skip it
    }
}

Exécuté tel quel avant commit sur les fixtures locales : trois RAW traités, le sous-dossier output/ ignoré proprement par le catch.

Ajoute aussi la propriété qui justifie l'approche : l'extraction est O(1) en taille de fichier — 30 Mo prennent les mêmes ~2 ms que 7 Mo, parce que le fichier n'est jamais chargé.

Pourquoi pas le code de bin/extract-local.php

Ce script ne fait que ces quatre lignes dans une boucle, plus ~90 lignes de glob, mkdir et formatage tabulaire. Le coller dans le README n'apprendrait rien de plus sur l'API, noierait l'information utile, et créerait deux copies à maintenir — dont une silencieusement fausse au premier changement du script.

Le README documente l'API ; le script est un outil dont on donne la commande, et son code est sur GitHub Ă  un clic.

Traiter un dossier est ce que fera l'immense majorité des utilisateurs, et
c'est ce qui montre le mieux la dégradation gracieuse : un seul catch, un
continue, aucun fichier non-RAW ne casse la boucle.

L'exemple a été exécuté tel quel avant commit.

Le README ne contient pas le code de bin/extract-local.php : ce script ne fait
que ces mĂŞmes quatre lignes dans une boucle, plus 90 lignes de formatage
tabulaire. Le dupliquer n'apprendrait rien sur l'API et créerait deux copies à
maintenir, dont une silencieusement fausse au premier changement.
@ronan-develop
ronan-develop merged commit 44457bc into main Jul 16, 2026
6 checks passed
@ronan-develop
ronan-develop deleted the docs/exemple-boucle branch July 16, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant