Fixes
- Throw on
file_put_contents/mkdirfailures in the code-gen path so a silently swallowed write (full disk, EACCES on a read-only checkout, ENOSPC, NFS hiccup) no longer lets the command exit 0 while a source file is left zero-byte truncated. AffectsAbstractAnnotator::storeFile(),Illuminator\TaskCollection::storeFile(),CodeCompletion\CodeCompletionGenerator, andGeneratePhpStormMetaCommand. Behavior on a healthy filesystem is unchanged.
Improvements
- New optional
PathAwareClassAnnotatorTaskInterface: a class annotator task can now declare extra directories thatbin/cake annotate classesshould walk on top of the defaultsrc/andtests/TestCase/scans. Tasks expose a staticscanPaths(): array<string>returning project-root-relative (or plugin-root-relative under-p) paths. Fully back-compatible — the interface is opt-in and existing tasks behave exactly as before. Enables consumers like cakephp-fixture-factories to drop their bespokeannotate_factoriescommand and reachtests/Factory/(and similar trees) through the unifiedannotate classesentry point.
Full Changelog: 2.16.8...2.17.0