Factoriser les helpers dupliqués dans les pages de login (db, url, env) #33

Closed
opened 2026-05-08 21:33:07 +00:00 by cedricAbonnel · 1 comment
Owner

Problème

Les fonctions db(), url() et env() sont redéfinies en copie dans trois fichiers distincts :

  • public/login/index.php
  • public/login/magic.php
  • public/oidc/start.php

Chacun vérifie function_exists() avant de définir la fonction, ce qui masque le problème sans le résoudre. Toute modification (ex. gestion IPv6 dans url()) doit être répercutée dans les trois fichiers manuellement.

Correction

  • Déplacer ces helpers dans un fichier partagé (ex. src/helpers.php s'il existe déjà, ou un nouveau src/functions.php)
  • Remplacer les trois blocs function_exists par un simple require_once
  • S'assurer que le fichier partagé est chargé via bootstrap.php ou explicitement dans chaque point d'entrée

Critères d'acceptation

  • Une seule définition de db(), url(), env() dans le projet
  • Les trois pages de login fonctionnent toujours
  • PHPStan passe
## Problème Les fonctions `db()`, `url()` et `env()` sont **redéfinies en copie** dans trois fichiers distincts : - `public/login/index.php` - `public/login/magic.php` - `public/oidc/start.php` Chacun vérifie `function_exists()` avant de définir la fonction, ce qui masque le problème sans le résoudre. Toute modification (ex. gestion IPv6 dans `url()`) doit être répercutée dans les trois fichiers manuellement. ## Correction - Déplacer ces helpers dans un fichier partagé (ex. `src/helpers.php` s'il existe déjà, ou un nouveau `src/functions.php`) - Remplacer les trois blocs `function_exists` par un simple `require_once` - S'assurer que le fichier partagé est chargé via `bootstrap.php` ou explicitement dans chaque point d'entrée ## Critères d'acceptation - [ ] Une seule définition de `db()`, `url()`, `env()` dans le projet - [ ] Les trois pages de login fonctionnent toujours - [ ] PHPStan passe
Author
Owner

Ticket migré vers le dépôt Folio : cedricAbonnel/folio#22

Ticket migré vers le dépôt Folio : https://git.abonnel.fr/cedricAbonnel/folio/issues/22
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/varlog#33