navarr/dependency-annotation

Adds extra functionality for interpreting the @dependency annotation

Fund package maintenance!
navarr

Installs: 17

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 3

Forks: 0

Open Issues: 5

Type:composer-plugin

v2.1.0-alpha.1 2021-07-14 01:15 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License
Tests Code Coverage Mutation score

This project supplies a Composer plugin that adds a command (why-block) that interprets a PHP #[Dependency] attribute.

How to use the #[Dependency] annotation

Simply include a #[Dependency] attribute on any attributable target in the following format:

#[Navarr\Attribute\Dependency('package', 'versionConstraint', 'reason')]

This FQN may be imported, in which case you can simply use #[Dependency(...)]

All fields except the explanation are mandatory. Adding an explanation is highly recommended, however.

How to process reasons not to upgrade a composer dependency

If you are using the #[Dependency] annotation thoroughly, and you are having issues updating a composer dependency, you can use the command composer why-block composer-package version

This will output a list of files containing a #[Dependency] annotation on composer-package with a version-constraint that cannot be fulfilled by the specified version.

How to install

composer global require navarr/dependency-annotation

Compatibility with v1

For speed, version 2 automatically excludes the legacy @dependency annotation in favor of the PHP8 #[Dependency] attribute. While transitioning, you may specify the -l or --include-legacy-annotations flag to the why-block command to force it to process v1 annotations as well.