PSR-4自动加载无法正常工作 - 无法找到课程

时间:2015-01-10 11:57:30

标签: php autoload psr-4

我正在尝试将一个长文件拆分成较小的块,所以我创建了一个src文件夹,并尝试从主Extension.php文件引用它(加载并正常工作,顺便说一句。)

因此,我将src文件夹添加到psr-4自动加载阵列:

"psr-4": {
        "Bolt\\Extension\\AndyJessop\\SurveyMonkey\\": [
            "",
            "src/"
        ]
    }

我在Test.php

中创建了src文件
<?php

namespace Bolt\Extension\AndyJessop\SurveyMonkey;

class Test
{
    public function test() {
        return 'success';
    }
}

Extension.php文件(位于同一名称空间下)中,我有一个名为的函数:

use Bolt\Extension\AndyJessop\SurveyMonkey\Test;

public function testing(){
    return Test::test();
}

但是我收到以下错误:

Error: Class 'Bolt\Extension\AndyJessop\SurveyMonkey\Test' not found
File: extensions/local/andyjessop/surveymonkey/Extension.php

1 个答案:

答案 0 :(得分:2)

首先,运行composer updatecomposer dump-autoload以生成自动加载系统。

接下来,请确保在入口点的顶部包含(最好是require_once)自动加载:

require_once __DIR__ . '/path/to/vendor/autoload.php';

N.B。:如果您使用的是PHP 5.3或更低版本,请将__DIR__替换为dirname(__FILE__)