1

次のようなプロジェクト構造があります。

app/
app/models/
app/controllers/
app/views/
public/
vendor/
composer.json

app / controllers / IndexController.phpの内部には、次のものがあります。

require '../vendor/autoload.php';

use MyApp\Models\Test;

class IndexController {

    public function __construct() {
       $t = new Test(); // can't be found
    }
}

これが私のcomposer.jsonです:

{
  "require": {
    "aws/aws-sdk-php": "*",
  },
  "autoload": {
    "psr-0": {
        "MyApp": "app/"
    }
  }
}

composer.jsonを更新した後、composer.phar updateを実行して、生成されたオートロードファイルを更新します。

参考までに-私はどのタイプのMVCフレームワークも使用していません。これは、私が小さなプロジェクトに使用するのが好きなカスタムの軽量構造です。

モデルフォルダーからクラスを自動ロードしてコントローラーで適切に使用できるように、プロジェクトを修正するにはどうすればよいですか?

4

1 に答える 1

2

自動読み込みを使用する場合psr-0は、psr-0仕様に従う必要があります。つまり、を指定する"MyApp": "app/"場合、クラスMyApp \ Models\Testはにある必要がありますapp/MyApp/Models/Test.php

于 2013-03-02T20:54:30.120 に答える