Codeception / AspectMock

The most powerful and flexible mocking framework for PHPUnit / Codeception.
MIT License
790 stars 129 forks source link

Does not install with Composer w/o warnings/errors (PHP 8) #202

Open jimbonator opened 2 years ago

jimbonator commented 2 years ago

AspectMock 4.1.1 won't install cleanly under PHP 8 with Composer:

$ composer update 
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires codeception/aspect-mock 4.1.1 -> satisfiable by codeception/aspect-mock[4.1.1].
    - codeception/aspect-mock 4.1.1 requires php ^7.4 -> your php version (8.1.2) does not satisfy that requirement.

The only way I can get it to install without errors is to use Composer's --ignore-platform-reqs option.

Although there are problems with goaop/parser-reflection under PHP 8 (see https://github.com/goaop/framework/issues/466), I believe AM itself will work without issue under the newer PHP versions (other than the problem I reported in #201).

I believe changing this composer.json line would be sufficient:

-        "php": "^7.4",
+        "php": ">=7.4",
Naktibalda commented 2 years ago

There is no point to claim that AspectMock support PHP 8, if underlying library doesn't support it.

jimbonator commented 2 years ago

I've submitted a patch to goaop/parser-reflection: https://github.com/goaop/parser-reflection/pull/121

votetake commented 1 year ago

But it is still in open status

jimbonator commented 7 months ago

The parser-reflection ticket is closed now.

marcovtwout commented 4 months ago

The message in the README on https://github.com/goaop/parser-reflection suggests that library is deprecated, but there have been many updates in the last few months. The dev versions works in one of my projects on PHP 8.2.

I've submitted a PR for preliminary PHP 8.2 support: https://github.com/Codeception/AspectMock/pull/210