指定平台php版本后编写器不工作

指定平台php版本后编写器不工作,php,dependencies,composer-php,version,executable,Php,Dependencies,Composer Php,Version,Executable,我正在为一个WebApp做一个项目,我想为我的类属性指定类型。我没有意识到这是PHP版本7.4.*的功能,因此我阅读并更新了我的composer.json,以包含相关资料: { "name": "srmes/shopping-app-test", "description": "an assignment from `scandiweb.com`. A simple php-based web application to display and inventory a rang

我正在为一个WebApp做一个项目,我想为我的类属性指定类型。我没有意识到这是PHP版本7.4.*的功能,因此我阅读并更新了我的
composer.json
,以包含相关资料:

{
    "name": "srmes/shopping-app-test",
    "description": "an assignment from `scandiweb.com`. A simple php-based web application to display and inventory a range of products",
    "require-dev":  {
        "phpunit/phpunit":"~9.0",
        "squizlabs/php_codesniffer": "~3.0"
    },
    "require": {
        "doctrine/orm": "~2.7",
        "php": "7.4.4"
    },
    "config": {
        "platform": {
            "php": "7.4.4"
        }
    },
    "autoload" : {
        "psr-4": {
            "WebApp\\": "src/"
         }
    },
    "autoload-dev" : {
        "psr-4": {
            "WebApp\\Tests\\" : "tests/"
        }
    }
}
然后我运行了
composer安装
composer更新

安装过程中似乎没有出现任何问题,只是现在我的phpunit测试没有运行:

PHPUnit 9.1.1 by Sebastian Bergmann and contributors.



Time: 58 ms, Memory: 4.00 MB

No tests executed!
所有
composer
命令都会出现以下错误:

Parse error: syntax error, unexpected 'string' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /Users/ScottAnderson/Documents/Tech/commissions/shopping_app_test/vendor/ocramius/package-versions/src/PackageVersions/Installer.php on line 33
具有讽刺意味的是,这是我试图使用的php特性的语法异常!我甚至不能运行
composer-vvv
来调试composer正在使用的php可执行文件

为了解决这个问题,我应该使用像php目录环境这样的包吗


我的假设是,在
composer.json
中要求使用PHP7.4.4之后,composer和phpunit将安装并使用正确的php可执行文件,看起来您没有运行PHP7.4。安装的依赖项(这里是phpunit和PackageVersion)需要它。 有时,composer会运行与事件挂钩的命令,如果该命令失败,其他所有命令都会失效

  • 删除供应商文件夹
  • 删除composer.lock
  • 删除composer.json中对PHP7.4版本的约束
  • 运行编写器更新
    您应该没事看起来您没有运行PHP7.4。安装的依赖项(这里是phpunit和PackageVersion)需要它。 有时,composer会运行与事件挂钩的命令,如果该命令失败,其他所有命令都会失效

    • 删除供应商文件夹
    • 删除composer.lock
    • 删除composer.json中对PHP7.4版本的约束
    • 运行编写器更新
      你应该没问题,我认为这是一个有效的回答,但我想使用7.4.4,因为这是在我的docker容器中实现的。在这种情况下,我只能建议你要么更新php版本,要么只在docker容器中运行命令。(我猜您已经在docker容器中安装了运行composer命令的依赖项)我认为这是一个有效的响应,但我希望使用7.4.4,因为这是在我的docker容器中实现的。在这种情况下,我只能建议您更新php版本或仅在docker容器中运行命令。(我猜您已经在docker容器中安装了运行composer命令的依赖项)