Composer dump-autoload给出了preg_match错误

时间:2015-06-22 08:18:21

标签: php composer-php autoload

我安装了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运行时,收到以下错误消息。

Error message Composer

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

2 个答案:

答案 0 :(得分:2)

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.

答案 1 :(得分:0)

您的composer.json文件不正确。

require-devautoload是两个主要部分。

这应该有效:

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