corentin_wakdo/docs/adr/0001-php-from-scratch-sans-composer.md
Imugiii 035129d7be
All checks were successful
CI / js-tests (pull_request) Successful in 23s
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 45s
CI / auto-merge (pull_request) Successful in 4s
docs(adr): registre des decisions d'architecture (9 ADR)
docs/adr/ : une fiche courte (contexte / decision / consequences) par decision
structurante, + un index et un modele de fiche.

0001 PHP from scratch sans Composer ; 0002 back-office MVC rendu serveur ;
0003 stock en % + dispo calculee RG-T21 ; 0004 PIN d'action sensible + audit en
transaction ; 0005 throttle PIN separe du login (RG-T22) ; 0006 HTTP 409 vs 422 ;
0007 effacement RGPD par anonymisation (tombstone) ; 0008 Makefile -> docker compose
(wakdo-migrate) ; 0009 compose standalone + prod gitignore.

Deuxieme PR du jeu de documentation. Resout le renvoi docs/adr/ d'ARCHITECTURE.md.
2026-06-17 13:50:27 +00:00

23 lines
1 KiB
Markdown

# ADR-0001 — PHP from scratch, sans framework ni Composer
- Statut : Accepte
- Date : 2026-04-23
## Contexte
Certification RNCP (Titre Developpeur Web, option DevOps). L'objectif pedagogique est
de demontrer la maitrise des fondamentaux (routage, PDO, sessions, securite) plutot que
la configuration d'un framework. Options : Symfony/Laravel ; micro-framework (Slim) ;
from scratch.
## Decision
Application PHP 8.3 ecrite **from scratch** : routeur, autoloader PSR-4 manuel
(`spl_autoload_register`), couche `Database` sur PDO, le tout **sans Composer**. Les
outils de dev (PHPUnit, PHPStan) sont utilises via leurs **`.phar` autonomes**.
## Consequences
- (+) Chaque mecanisme (routage, auth, RBAC, requetes preparees) est explicite et
defendable a l'oral ; pas de magie de framework.
- (+) Surface de dependances minimale (moins de supply-chain a auditer).
- (-) Du code d'infrastructure a ecrire et tester soi-meme (Core, Auth).
- CI sans Composer : les `.phar` (phpunit, phpstan) sont epingles/telecharges.
Voir `docs/PROJECT_CONTEXT.md` section 6.