This switches the installation method for Psalm from Phive to Composer, while still using a Phar file for running Psalm.
Includes:
* Removing Psalm from the Phive configuration.
* Adding Psalm to the Composer configuration. Includes upgrading from version `3.11.2` to version `4.8.1`.
* Adjusting the script used in the `Makefile`.
👉 Please verify and test this as things work differently on different OS-es and this should work for you.
* Adjusting the GH Actions script to use the Composer installed version of Psalm.
Note: due to the committed `composer.lock` file, Psalm will not automatically upgrade when newer versions are available.
Refs:
* https://github.com/vimeo/psalm/releases
* https://github.com/psalm/phar/releases
* composer: put require- together
* add phpstan
* add phpstan to travis
* phpstan fixes
* phpstan fixes
* phpstan fixes
* drop null defaults since every property is null by default
* DescriptionFactory: fix parse nullable type
* travis: add phpstan max
* travis: fix phpstan config
In order to restore a bc break made in 3.2.0 I downgraded the
type-resolver. This makes the version less compatible with php 7.1
But will help our users to upgrade.
Running the unit tests with php nightly exposed the bug:
Fatal error: Cannot use phpDocumentor\Reflection\Types\Void as Void
because 'Void' is a special class name in
/home/travis/build/hboomsma/ReflectionDocBlock/tests/unit/DocBlock/Tags/MethodTest.php
on line 25
composer validate gives the following warning:
````
phpdocumentor/reflection-docblock is valid for simple usage with composer but has
strict errors that make it unable to be published as a package:
description : The property description is required
````
Due a hotfix done in the the type resolver library version 0.1.5 is the new minimal version of type-resolver.
Without this fix an infinitive loop is created when the use keyword is used in a class.
PHPUnit 4.4 was the last version without phpspec. phpspec conflicts
with this package because it requires v2 of this component and
this causes a cyclic issue with composer
- Changed Tag to an interface and flattened hierarchy
- Changed Description to accept a list of tags and a template
- Allow auto-wiring when constructing tags