← Devlog

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:

Analyse Claude Assistant IA
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 de auto_*
  • 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_iterator par RecursiveDirectoryIterator natif
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.