Composer dump-autoload 给出 preg_match 错误

Composer dump-autoload gives preg_match error

我在我的 PHP 项目中安装了 Composer,并且想使用自动加载器。在 this 页面上,我阅读了 composer.json 文件的外观以及我应该 运行 命令 dump-autoload。我的 composer.json 文件如下所示

{
    "require-dev":{
        "phpunit/phpunit":"4.5.*",
        "autoload":{
            "psr-0":{
                "Yii\":"yii-1.1.14.f0fee9/"
            }
        }
    }
}

当我从终端 php composer.phar dump-autoload 运行 时,我收到以下错误消息。

  1. 第二个参数和数组是什么?
  2. 如何解决这个问题以生成新的 autoload.php 文件?

您的 composer.json 文件不正确。

require-devautoload 是 2 个主要部分。

这应该有效:

{
    "require-dev":{
        "phpunit/phpunit":"4.5.*"
    },
    "autoload":{
        "psr-0":{
            "Yii\":"yii-1.1.14.f0fee9/"
        }
    }
}

autoload 应该移出 require-dev:

{
    "require-dev":{
        "phpunit/phpunit":"4.5.*"
    },
    "autoload":{
        "psr-0":{
            "Yii\":"yii-1.1.14.f0fee9/"
        }
    }
} 

您可以使用 composer validate 测试您的 composer.json 文件。您返回的原始文件:

./composer.json is invalid, the following errors/warnings were found:
require-dev.autoload : invalid value, must be a string containing a version constraint
the property name is required
the property description is required
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.