17

いくつかのクラスを自動ロードする必要があるだけで、psr-0 名前空間の狂気は好きではありません (悪気はありません)。

これは私のプロジェクトでうまく機能していました:

"psr-0": {
    "": [
        "app/controller/",
        "app/model/"
    ]
}

同じ Composer バージョンを使用しているにもかかわらず、何らかの理由で動作しなくなりました。Silex も使用している新しいプロジェクトに必要です。これは Silex と競合する可能性がありますか?

「classmap」オプションについては知っていますが、新しいクラスを追加するたびに「composer install」を実行する必要があるため、役に立ちません。

何か案は?

4

3 に答える 3

17

「プリミティブ」な JSON プロパティを使用してみてください。配列ではありません(あなたの例のように)。これはpsr-4、あなたが言うように、次のように機能します"": "app/"

{
"autoload": {
    "psr-4": {
        "Robbie\\": "core/",
        "": "app/"
    }
},
"require": {
        "monolog/monolog": "1.2.*"
    } 
}

これにより、 composer によって制御されないソースの例としてRobbie、 directory の下の名前空間core、サードパーティ (ベンダー) の Monolog 名前空間、およびディレクトリの下のソースのデフォルトまたは非名前空間が得られますapp

の後にcomposer update、生成された autoload.php を含めると、それらすべてが利用可能になります。

<?php    
require_once 'vendor/autoload.php';
// ...    
?>    
于 2014-01-05T20:37:53.890 に答える