2015-06-22 35 views
1

我在我的PHP项目中安装了Composer,并且想使用自动加载器。在this页面上,我阅读了composer.json文件应该是什么样子,我应该运行命令dump-autoload。我composer.json文件看起来如下Composer dump-autoload给出preg_match错误

{ 
    "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

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. 
0

您的composer.json文件不正确。

require-devautoload是2个主要部分。

这应该工作:

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