None
None
None
None
Execute the collector with /usr/bin/env php instead of executing the script directly, because the
permission might be dropped by indelicate unarchivers. (fix #49)
- composer-plugin-api v2.3
None
None
None
None
None
-
#38 Attributes are now collected from interfaces and traits as well as classes. (@olvlvl)
-
#37 Parameter attributes are now collected. Use the method
findTargetParameters()to find target parameters, and the methodfilterTargetParameters()to filter target parameters according to a predicate. (@staabm @olvlvl) -
#39 The
InheritsAttributesattribute can be used on classes that inherit their attributes from traits, properties, or methods, but don't use attributes themselves, and were previously ignored by the collection process. (@olvlvl)trait UrlTrait { #[UrlGetter] public function get_url(): string { return '/url'; } } #[InheritsAttributes] class InheritedAttributeSample { use UrlTrait; }
-
#44 The collector automatically scans
autoloadpaths of the rootcomposer.jsonfor a zero-configuration experience. (@olvlvl)
None
None
#35 The collector runs as a command to avoid clashes between packages used by Composer and those used by the application, such as incompatible signatures between different versions of the PSR Logger. (@olvlvl)
Added use cases for incompatible signature, Symfony, and Laravel.
None
None
None
None
- Fix PHP 8.4 deprecation notice "Implicitly marking parameter * as nullable is deprecated."
- Simplify attribute creation functions.
None
None
None
None
- #26 Fix enum support on PHP < 8.2.0 (@mnavarrocarter)
None
- The plugin now collects attributes on properties.
Attributes::findTargetProperties()returns target properties, andfilterTargetProperties()filters properties with a predicate.
- The
ignore-pathsdirective has been replaced byexclude.
- The paths defined by the
includeandexcludedirectives are relative to thecomposer.jsonfile. The{vendor}placeholder is replaced by the absolute path to the vendor directory.
- The plugin no longer uses a file cache by default. To persist a cache between runs, set the environment variable
COMPOSER_ATTRIBUTE_COLLECTOR_USE_CACHEto1,yes, ortrue.
None
- #11 Attribute instantiation errors are decorated to help find origin (@withinboredom @olvlvl)
- #12
Attributes::filterTargetClasses()can filter target classes using a predicate (@olvlvl) - #12
Attributes::filterTargetMethods()can filter target methods using a predicate.Attributes::predicateForAttributeInstanceOf()can be used to create a predicate to filter classes or methods targeted by an attribute class or subclass (@olvlvl) - #10 3 types of cache speed up generation by limiting updates to changed files (@xepozz @olvlvl)
None
None
None
None
- File paths matching
symfony/cache/Traitsare ignored. - The option
extra.composer-attribute-collection.ignore-pathscan be used to ignore paths.
None
None
None