Archi perf : ne pas charger le contenu Markdown dans getAll() #35
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
Dans
ArticleManager::loadArticle(), le contenu Markdown (index.md) est lu et chargé dans le tableau pour chaque article, même quand seules les métadonnées sont nécessaires (page liste, slug lookup, unicité de slug).Sur un blog avec 50 articles de 5 Ko chacun,
getAll()lit 250 Ko de Markdown inutilement à chaque chargement de la page d'accueil.Solution proposée
Introduire un paramètre
$withContent = falsedansloadArticle()etgetAll():Seuls
getByUuid()etgetBySlug()(appelés depuis la vue article ou l'édition) ont besoin du contenu. La liste et les lookups de slug n'en ont pas besoin.Impact
index.mdindex.mdindex.mdindex.md(inchangé)uniqueSlug()viagetAll()index.mdindex.mdCritères d'acceptation
getAll()ne lit plusindex.mdpar défautgetBySlug()etgetByUuid()passentwithContent: trueou font une lecture cibléeNote
Ce ticket est indépendant du ticket #26 (cache de la liste) mais les deux se complètent : le cache évite les scans répétés entre requêtes, ce ticket réduit le coût de chaque scan.
Ticket migré vers le dépôt Folio : cedricAbonnel/folio#24