Phpinsights: Laravel 7 support

Created on 3 Mar 2020  路  8Comments  路  Source: nunomaduro/phpinsights

| Q | A
| ---------------- | -----
| Bug report? | no
| Feature request? | yes
| Library version | 1.13.0

I would like to know, what about the support for Laravel 7? @nunomaduro @Jibbarth @olivernybroe

Most helpful comment

On a fresh install of laravel7 (ie composer create-project --prefer-dist laravel/laravel blog) we have the same behaviour, with dev-master on php 73 or 74 :disappointed:

  Problem 1
    - Installation request for symfony/console (locked at v5.0.5) -> satisfiable by symfony/console[v5.0.5].
    - Conclusion: don't install phploc/phploc 5.0.0
    - Installation request for nunomaduro/phpinsights dev-master -> satisfiable by nunomaduro/phpinsights[dev-master].
    - Conclusion: don't install sebastian/version 2.0.1|install phploc/phploc 5.0.0
    - Conclusion: remove sebastian/version 2.0.1|install phploc/phploc 5.0.0
    - nunomaduro/phpinsights dev-master requires phploc/phploc ^5.0|^6.0 -> satisfiable by phploc/phploc[5.0.0, 6.0.0, 6.0.1, 6.0.2, 6.0.x-dev].
    - phploc/phploc 6.0.0 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.1 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.2 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.x-dev requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - Can only install one of: sebastian/version[3.0.0, 2.0.1].
    - Can only install one of: sebastian/version[3.0.x-dev, 2.0.1].
    - Installation request for sebastian/version (locked at 2.0.1) -> satisfiable by sebastian/version[2.0.1].

To fix

First, upgrade phpunit to v9.0:

composer require --dev phpunit/phpunit:^9.0 --update-with-dependencies

Then, you can install phpinsights:

composer require --dev nunomaduro/phpinsights:dev-master

For Symfony5 users

Unlike laravel, symfony/skeleton or symfony/website-skeleton came with a minimum-stability to stable.

To allow install all dependencies on SF5, you should allow a RC minimum-stability:

composer config minimum-stability RC

Then you can install phpinsights.

Note: When composer 1.10.0 will be released, the minimum stability can be reset to stable

All 8 comments

@leasophiiie Why you say that there is no support?

Because of this

  Problem 1
    - nunomaduro/phpinsights v1.13.0 requires phploc/phploc ^5.0 -> satisfiable by phploc/phploc[5.0.0].
    - Installation request for nunomaduro/phpinsights ^1.13 -> satisfiable by nunomaduro/phpinsights[v1.13.0].
    - Conclusion: remove symfony/console v5.0.5
    - Conclusion: don't install symfony/console v5.0.5
    - phploc/phploc 5.0.0 requires symfony/console ^4.0 -> satisfiable by symfony/console[4.0.x-dev, 4.1.x-dev, 4.2.x-dev, 4.3.x-dev, 4.4.x-dev, v4.0.0, v4.0.0-BETA1, v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.0-RC1, v4.0.0-RC2, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.0-BETA1, v4.1.0-BETA2, v4.1.0-BETA3, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.0-BETA1, v4.2.0-BETA2, v4.2.0-RC1, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.0-BETA1, v4.3.0-BETA2, v4.3.0-RC1, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.0-BETA1, v4.4.0-BETA2, v4.4.0-RC1, v4.4.1, v4.4.2, v4.4.3, v4.4.4, v4.4.5].
    - Can only install one of: symfony/console[4.0.x-dev, v5.0.5].
    - Can only install one of: symfony/console[4.1.x-dev, v5.0.5].
    - Can only install one of: symfony/console[4.2.x-dev, v5.0.5].
    - Can only install one of: symfony/console[4.3.x-dev, v5.0.5].
    - Can only install one of: symfony/console[4.4.x-dev, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-BETA1, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-BETA2, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-BETA3, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-BETA4, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-RC1, v5.0.5].
    - Can only install one of: symfony/console[v4.0.0-RC2, v5.0.5].
    - Can only install one of: symfony/console[v4.0.1, v5.0.5].
    - Can only install one of: symfony/console[v4.0.10, v5.0.5].
    - Can only install one of: symfony/console[v4.0.11, v5.0.5].
    - Can only install one of: symfony/console[v4.0.12, v5.0.5].
    - Can only install one of: symfony/console[v4.0.13, v5.0.5].
    - Can only install one of: symfony/console[v4.0.14, v5.0.5].
    - Can only install one of: symfony/console[v4.0.15, v5.0.5].
    - Can only install one of: symfony/console[v4.0.2, v5.0.5].
    - Can only install one of: symfony/console[v4.0.3, v5.0.5].
    - Can only install one of: symfony/console[v4.0.4, v5.0.5].
    - Can only install one of: symfony/console[v4.0.5, v5.0.5].
    - Can only install one of: symfony/console[v4.0.6, v5.0.5].
    - Can only install one of: symfony/console[v4.0.7, v5.0.5].
    - Can only install one of: symfony/console[v4.0.8, v5.0.5].
    - Can only install one of: symfony/console[v4.0.9, v5.0.5].
    - Can only install one of: symfony/console[v4.1.0, v5.0.5].
    - Can only install one of: symfony/console[v4.1.0-BETA1, v5.0.5].
    - Can only install one of: symfony/console[v4.1.0-BETA2, v5.0.5].
    - Can only install one of: symfony/console[v4.1.0-BETA3, v5.0.5].
    - Can only install one of: symfony/console[v4.1.1, v5.0.5].
    - Can only install one of: symfony/console[v4.1.10, v5.0.5].
    - Can only install one of: symfony/console[v4.1.11, v5.0.5].
    - Can only install one of: symfony/console[v4.1.12, v5.0.5].
    - Can only install one of: symfony/console[v4.1.2, v5.0.5].
    - Can only install one of: symfony/console[v4.1.3, v5.0.5].
    - Can only install one of: symfony/console[v4.1.4, v5.0.5].
    - Can only install one of: symfony/console[v4.1.5, v5.0.5].
    - Can only install one of: symfony/console[v4.1.6, v5.0.5].
    - Can only install one of: symfony/console[v4.1.7, v5.0.5].
    - Can only install one of: symfony/console[v4.1.8, v5.0.5].
    - Can only install one of: symfony/console[v4.1.9, v5.0.5].
    - Can only install one of: symfony/console[v4.2.0, v5.0.5].
    - Can only install one of: symfony/console[v4.2.0-BETA1, v5.0.5].
    - Can only install one of: symfony/console[v4.2.0-BETA2, v5.0.5].
    - Can only install one of: symfony/console[v4.2.0-RC1, v5.0.5].
    - Can only install one of: symfony/console[v4.2.1, v5.0.5].
    - Can only install one of: symfony/console[v4.2.10, v5.0.5].
    - Can only install one of: symfony/console[v4.2.11, v5.0.5].
    - Can only install one of: symfony/console[v4.2.12, v5.0.5].
    - Can only install one of: symfony/console[v4.2.2, v5.0.5].
    - Can only install one of: symfony/console[v4.2.3, v5.0.5].
    - Can only install one of: symfony/console[v4.2.4, v5.0.5].
    - Can only install one of: symfony/console[v4.2.5, v5.0.5].
    - Can only install one of: symfony/console[v4.2.6, v5.0.5].
    - Can only install one of: symfony/console[v4.2.7, v5.0.5].
    - Can only install one of: symfony/console[v4.2.8, v5.0.5].
    - Can only install one of: symfony/console[v4.2.9, v5.0.5].
    - Can only install one of: symfony/console[v4.3.0, v5.0.5].
    - Can only install one of: symfony/console[v4.3.0-BETA1, v5.0.5].
    - Can only install one of: symfony/console[v4.3.0-BETA2, v5.0.5].
    - Can only install one of: symfony/console[v4.3.0-RC1, v5.0.5].
    - Can only install one of: symfony/console[v4.3.1, v5.0.5].
    - Can only install one of: symfony/console[v4.3.10, v5.0.5].
    - Can only install one of: symfony/console[v4.3.11, v5.0.5].
    - Can only install one of: symfony/console[v4.3.2, v5.0.5].
    - Can only install one of: symfony/console[v4.3.3, v5.0.5].
    - Can only install one of: symfony/console[v4.3.4, v5.0.5].
    - Can only install one of: symfony/console[v4.3.5, v5.0.5].
    - Can only install one of: symfony/console[v4.3.6, v5.0.5].
    - Can only install one of: symfony/console[v4.3.7, v5.0.5].
    - Can only install one of: symfony/console[v4.3.8, v5.0.5].
    - Can only install one of: symfony/console[v4.3.9, v5.0.5].
    - Can only install one of: symfony/console[v4.4.0, v5.0.5].
    - Can only install one of: symfony/console[v4.4.0-BETA1, v5.0.5].
    - Can only install one of: symfony/console[v4.4.0-BETA2, v5.0.5].
    - Can only install one of: symfony/console[v4.4.0-RC1, v5.0.5].
    - Can only install one of: symfony/console[v4.4.1, v5.0.5].
    - Can only install one of: symfony/console[v4.4.2, v5.0.5].
    - Can only install one of: symfony/console[v4.4.3, v5.0.5].
    - Can only install one of: symfony/console[v4.4.4, v5.0.5].
    - Can only install one of: symfony/console[v4.4.5, v5.0.5].
    - Installation request for symfony/console (locked at v5.0.5) -> satisfiable by symfony/console[v5.0.5].

Yeah, looks like phploc/phploc needs to be bumped to include v6.x :thinking: However, v6.x dropped support for PHP 7.2, so I guess it would need to be ^5.0|^6.0 however, that would mean that anyone on Laravel 7 would have to use PHP 7.3 or later.

On a fresh install of laravel7 (ie composer create-project --prefer-dist laravel/laravel blog) we have the same behaviour, with dev-master on php 73 or 74 :disappointed:

  Problem 1
    - Installation request for symfony/console (locked at v5.0.5) -> satisfiable by symfony/console[v5.0.5].
    - Conclusion: don't install phploc/phploc 5.0.0
    - Installation request for nunomaduro/phpinsights dev-master -> satisfiable by nunomaduro/phpinsights[dev-master].
    - Conclusion: don't install sebastian/version 2.0.1|install phploc/phploc 5.0.0
    - Conclusion: remove sebastian/version 2.0.1|install phploc/phploc 5.0.0
    - nunomaduro/phpinsights dev-master requires phploc/phploc ^5.0|^6.0 -> satisfiable by phploc/phploc[5.0.0, 6.0.0, 6.0.1, 6.0.2, 6.0.x-dev].
    - phploc/phploc 6.0.0 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.1 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.2 requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - phploc/phploc 6.0.x-dev requires sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.x-dev].
    - Can only install one of: sebastian/version[3.0.0, 2.0.1].
    - Can only install one of: sebastian/version[3.0.x-dev, 2.0.1].
    - Installation request for sebastian/version (locked at 2.0.1) -> satisfiable by sebastian/version[2.0.1].

To fix

First, upgrade phpunit to v9.0:

composer require --dev phpunit/phpunit:^9.0 --update-with-dependencies

Then, you can install phpinsights:

composer require --dev nunomaduro/phpinsights:dev-master

For Symfony5 users

Unlike laravel, symfony/skeleton or symfony/website-skeleton came with a minimum-stability to stable.

To allow install all dependencies on SF5, you should allow a RC minimum-stability:

composer config minimum-stability RC

Then you can install phpinsights.

Note: When composer 1.10.0 will be released, the minimum stability can be reset to stable

@Jibbarth auch, that's not the most user friendly way. Maybe we should look into if we can drop composer dependency?

@olivernybroe I already tried to rewrite the validate part of ComposerMustBeValid but it's a huge feature :disappointed:

Maybe, as it was proposed on your PHPStan PR, we could parse the result of composer validate command and create Details with the results.

For the ComposerLockMustBeFresh, I think it's easier to recode, because it's based on a hash (don't remember which type) of the composer.json writed in composer.lock.

But drop composer dependency will not fix the conflict in laravel7 between phpunit:8.5 dependencies and phploc:6.0 dependencies (ie sebastian/version :slightly_frowning_face: )

When will this be released -- so that we don't need to use dev-master? Thanks! :-)

Was this page helpful?
0 / 5 - 0 ratings