Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ Les versions `0.1.x`/`0.2.0` (juin 2026) correspondent à la phase de prototypag
- `Support\ServiceIntegration` — classe de base pour représenter un service externe comme une unique classe liée au conteneur : lit son propre bloc `config('services.<key>')`, expose un `HttpClient` pré-configuré (`base_uri` + jeton `Bearer`) via `http()`, et vérifie ses propres webhooks via `verifyWebhook()` — qui lit, comme le middleware `webhook`, `webhook_header`/`webhook_timestamped`/`webhook_tolerance` depuis la config (un appel sans argument suffit ; les paramètres ne servent qu'à surcharger ponctuellement). Ne remplace pas le mécanisme de binding existant (`#[Module(providers: [...])]`) — comble l'absence de convention sur *la forme* d'un service externe une fois lié.
- `config/services.php` (skeleton) documente désormais cette convention (`base_uri`, `secret`, `webhook_secret`, ...) dans son exemple commenté.

### Changed

- **`fakerphp/faker` et `psy/psysh` déplacés vers `require-dev`** — tous deux ne sont utilisés qu'en développement (`Database\Factory::fake()`/`db:seed` pour le premier, la commande REPL `tinker` pour le second), jamais au boot ni dans une requête HTTP. Une installation `composer install --no-dev` (prod) n'embarque donc plus ni l'un ni l'autre. `tinker` continue de se dégrader proprement si `psy/psysh` manque (`Console\Kernel::registerFrameworkCommands()` enveloppe déjà chaque commande dans un `try/catch`) ; `db:seed` dispose maintenant de son propre `try/catch` dédié (voir ci-dessous) puisque, contrairement à `tinker`, l'échec ne peut survenir qu'à l'exécution du seeder, pas à l'enregistrement de la commande. Une application qui a besoin de l'un ou l'autre en local/CI doit désormais les redéclarer dans son propre `require-dev` — c'est fait pour le skeleton.

### Fixed

- **`db:seed` plantait avec une trace brute et incompréhensible si un seeder utilisait `Database\Factory::fake()` sans que `fakerphp/faker` soit installé** (cas qui devient réel maintenant que ce package est en `require-dev`, voir ci-dessus) — `DbSeedCommand` capture désormais cette erreur spécifiquement et affiche un message actionnable (`composer require --dev fakerphp/faker`) au lieu de laisser remonter l'exception ; toute autre erreur de seeder continue de s'afficher normalement.

### Documentation

- `docs/middleware.md` référençait tous les middlewares sauf le nouveau `webhook` — ajouté au tableau. `docs/authentication.md` ne montrait pas la clé `redirects` dans son exemple `config/auth.php` alors qu'elle est bien lue par `Authenticate` — complété.
Expand Down
10 changes: 6 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,9 @@
"require": {
"php": ">=8.2",
"doctrine/dbal": "^4.4",
"fakerphp/faker": "^1.23",
"firebase/php-jwt": "^7.0",
"league/flysystem": "^3.29",
"monolog/monolog": "^3.10",
"psy/psysh": "^0.12.23",
"symfony/cache": "^7.0",
"symfony/console": "^7.0",
"symfony/http-client": "^7.0",
Expand All @@ -44,15 +42,19 @@
"vlucas/phpdotenv": "^5.6"
},
"require-dev": {
"fakerphp/faker": "^1.23",
"league/flysystem-aws-s3-v3": "^3.29",
"pestphp/pest": "^3.8",
"phpstan/phpstan": "^2.2",
"phpunit/phpunit": "^11.0"
"phpunit/phpunit": "^11.0",
"psy/psysh": "^0.12.23"
},
"suggest": {
"ext-apcu": "Faster in-memory cache and rate limiting",
"fakerphp/faker": "Required by Model::factory()/db:seed when a seeder generates fake data — dev/CI only, not needed in production",
"league/flysystem-aws-s3-v3": "S3 filesystem disk support",
"predis/predis": "Redis cache and queue backend"
"predis/predis": "Redis cache and queue backend",
"psy/psysh": "Powers the `tinker` REPL command — dev only, not needed in production"
},
"autoload": {
"psr-4": {
Expand Down
Loading
Loading