01 janvier 2026 - Probe
Bonne année o/
Je commence à réfléchir à l’architecture MVC, au Front Controller. Mais avant cela je me dis que je dois absolument mettre en place du TDD. Deux acteurs majeurs en php: PHPUnit et Pest.
Je vais choisir la troisième voie et reprendre un ancien Projet de TDD: Anc. L'objectif est le même qu'avec River forger mon level en php. Claude analyse et valide l'idée:
Ce qui est vraiment bien :
- Auto-découverte (convention
auto_*pour les méthodes) - CLI coloré et lisible (ASCII art + ANSI colors)
- Reflection pour trouver les tests automatiquement
- Gestion d'erreurs avec stack trace inversée
- Compteur de résultats (note finale)
- Options CLI (
-t,-v,-no-auto-test) - Pas de dépendances lourdes
Ce qui pourrait être amélioré :
- Dépend de
Glob_filter_iterator(custom) - Variables globales (
$GLOBALS['count_fail_tests']) - Pas d'assertions (faut faire
pass()/fail()manuellement) - Code un peu verbeux
Ma recommandation révisée
Ne crée PAS un nouveau système, modernise Anc !
Garde la philosophie (léger, auto-découverte, CLI coloré) mais :
1 Modernise avec PHP 8.4
- Attributs
#[Test]au lieu deauto_* - Typed properties
- Match au lieu de if/else
2 Ajoute des assertions simples
assert_equals($expected, $actual)assert_true($condition)assert_file_exists($path)
3 Enlève les dépendances externes
- Remplace
Glob_filter_iteratorparRecursiveDirectoryIteratornatif
4 Intègre avec River
- Utilise Logger de River
- Teste Logger, Request, Error_handler
Je commence par définir la manière dont je souhaite écrire les tests, a écrire les premières assertions et la structure pour run les tests.
Après 5 jours de dev, j'obtiens quelques chose de fonctionnel.
Probe est parfait pour faire du TDD sur des petits/moyens projets.
La version 0.2.0 couvrent 90% des assertions courantes, je vais pouvoir reprendre le développement de River et adapté Probe à mes besoin s'il le faut.