Composer自动加载PHP

时间:2013-12-01 20:02:20

标签: php composer-php autoloader psr-0

我需要有关composer autoloader的帮助。在我看来,我已经正确设置了所有内容,但我仍然遇到错误“找不到课程”。

所以也许这里有人能够帮助我。 查看下面的屏幕截图,了解我构建项目的方式以及我为Test类自动加载命名空间的方式。

enter image description here

enter image description here

enter image description here

问题是为什么我有错误,找不到课程?

1 个答案:

答案 0 :(得分:2)

您的 composer.json 文件中的autoload数组错误。如果您的根命名空间是app,那么它应该如下所示:

{
    "autoload": {
        "psr-0": {
            "app": "/"
        }
    }
}

然后,您可以在app命名空间中使用您的类,如下所示:

<?php
require('../vendor/autoload.php');

$test = new \app\controller\Test();

但是,我会像你的PSR方式那样使用你的命名空间。所以在我的例子中,我有一个像这样的目录结构:

  • 的src /
    • MCB /
      • 控制器/
        • PagesController.php
  • 供应商/
    • autoload.php

我的 composer.json 文件如下所示:

{
    "autoload": {
        "psr-0": {
            "MCB": "src/"
        }
    }
}

然后我可以像这样使用我的课程:

<?php
require('../vendor/autoload.php');

$controller = new \MCB\Controller\PagesController();