2015-06-22 58 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/" 
     } 
    } 
}