0

Laravel 4 パッケージの 1 つでクラスをロードするのに問題があります。composer.jsonに適切な名前空間とパスのマッピングがない場合に発生する、一般的な「クラスが見つかりません」というエラーが表示されます。ファイルにすべてを追加しようとしましたが、何もcomposer.json機能していないようです。ただし、新しいオブジェクトを宣言するときにクラスのフルパスを使用しようとすると:psr-0classmapfiles

$foo=new Myvendor\Mypackage\Domain\Models\Mymodel;

それは非常にうまく機能します。ただし、オブジェクトが必要になるたびにパス全体を宣言する必要はありません。完全なファイルパスを持つクラスが機能するという事実は、ソリューションに非常に近づいていることを示しています。

編集:いくつかのコード

次の場所にある私のクラス:src\Myvendor\Mypackage\Domain\Models\Complainant.phpパッケージルートからの相対位置

<?php namespace Myvendor\Mypackage\Domain\Models;

class Complainant {
public $fname;
public $lname;
}

私のcomposer.jsonファイルの一部:

"autoload": {
    "psr-0": {
        "Myvendor\\Mypackage": "src/"
    }
},

このコードは機能しません:

$var=new Complainant;

以下は行いますが:

$c=new Myvendor\Mypackage\Domain\Models\Complainant;
4

1 に答える 1

2

を行っている場合はphp artisan dump-autoload、すべてのクラスがvendor/composer/autoload_classmap.php適切な名前空間でファイルにマップされていることがわかります。そこにあるクラスを見つけて、適切な名前空間を使用してください。

于 2013-10-11T08:48:57.140 に答える