首页 > 解决方案 > 通过作曲家自动加载类不起作用

问题描述

我有一个项目结构:

在此处输入图像描述

在 index.php 中,我创建了 2 个新对象:

use App\Controllers\Test;
use Xuborx\Cms\App;

new Test();
new App();

我的Test.php

<?php

namespace App\Controllers;

class Test
{

}

我的应用程序.php

<?php

namespace Xuborx\Cms;

class App {

}

我在 composer.json 中的自动加载对象:

"autoload": {
        "psr-4": {
            "App\\Controllers\\": "app/controllers",
            "Xuborx\\Cms\\": "vendor/xuborx/cms"

        }
    }

在 index.php 中成功创建对象测试,但是当我创建新应用程序时,出现错误:

致命错误:未捕获的错误:在 /home/denis/Coding/xuborx-cms/public/index.php:8 中找不到类“Xuborx\Cms\App”堆栈跟踪:在 /home/denis/ 中抛出 #0 {main}第 8 行的编码/xuborx-cms/public/index.php

另外,当我运行composer dump-autoload -o时,出现错误:

位于 ./vendor/xuborx/cms/core/App.php 的 Xuborx\Cms\App 类不符合 psr-4 自动加载标准。跳过。

我想,我不正确在 composer.json 中使用自动加载,但我不明白我的错误。请<和我谈谈。

标签: phpnamespacescomposer-phppsr-4

解决方案


App.php 在 /core 目录中:

autoload": {
        "psr-4": {
            "App\\Controllers\\": "app/controllers",
            "Xuborx\\Cms\\": "vendor/xuborx/cms/core"

        }
    }

推荐阅读