Releases: phpnomad/cli
v2.0.1 — fix map-key collision detection
Bug fix: InitializerMutator now resolves names on the cloned AST so map-style registrations into an existing initializer correctly detect key collisions when the existing keys use use-imported short forms (e.g. Ready::class via use Foo\Bar\Ready).
Before this fix, when a recipe added a map registration whose key already existed in short form, the new entry was appended with a syntactically-distinct but semantically-identical key. PHP collapsed the duplicate keys at runtime, silently dropping one of the entries (e.g. losing an existing listener when scaffolding a new one for the same event).
After: existing single values are auto-converted to arrays and the new value is appended. Both stay live.
Compatibility: No public-API changes. Behavior change is in-place — existing call sites that hit the bug now produce correct output.
Initial Release
Add recipe stacking and database-datastore composite recipe Recipes can now reference other recipes via a "recipes" field, enabling composition. Child recipes execute sequentially with vars flowing from parent to child. Added rootNamespace auto-computed var from PSR-4 config and Short var transform for class short names. The database-datastore composite recipe demonstrates stacking: one command creates 7 files (model, adapter, table, datastore interface, handler interface, implementation, database handler) with 2 DI registrations. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>