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

Closed
opened 2026-05-13 22:09:37 +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

Migré depuis varlog#33

## 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 --- *Migré depuis [varlog#33](https://git.abonnel.fr/cedricAbonnel/varlog/issues/33)*
Author
Owner

Traité : env() et db() déplacés dans src/helpers.php (avec guards function_exists). config/config.php charge maintenant helpers.php après le chargement du .env. Les blocs inline dans public/login/index.php, login/magic.php, oidc/start.php et oidc/callback.php ont été supprimés. url() était déjà définie dans config/config.php — les duplicatas dans les pages login étaient déjà du dead code.

Traité : `env()` et `db()` déplacés dans `src/helpers.php` (avec guards `function_exists`). `config/config.php` charge maintenant `helpers.php` après le chargement du `.env`. Les blocs inline dans `public/login/index.php`, `login/magic.php`, `oidc/start.php` et `oidc/callback.php` ont été supprimés. `url()` était déjà définie dans `config/config.php` — les duplicatas dans les pages login étaient déjà du dead code.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/folio#22