无法使用Composer自动加载类

时间:2013-03-02 20:21:00

标签: autoload composer-php

我的项目结构如下:

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框架。这只是我喜欢用于小型项目的自定义轻量级结构。

如何修复项目以便我可以从模型文件夹中自动加载类并在我的控制器中正确使用它们?

1 个答案:

答案 0 :(得分:2)

如果您使用psr-0自动加载,则需要遵循psr-0规范。这意味着,如果您指定"MyApp": "app/",则类MyApp \ Models \ Test必须位于app/MyApp/Models/Test.php