【问题标题】:Autoloading of classes through composer does not work [duplicate]通过作曲家自动加载类不起作用[重复]
【发布时间】:2021-02-23 17:45:12
【问题描述】:

我有一个项目结构:

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

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

new Test();
new App();

我的测试.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中成功创建了Object Test,但是在创建新App的时候出现错误:

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

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

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

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

【问题讨论】:

    标签: php namespaces composer-php psr-4


    【解决方案1】:

    App.php 在 /core 目录中:

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

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2014-01-31
      • 2016-10-20
      • 2016-08-01
      • 2015-12-24
      • 2014-08-15
      • 2017-12-28
      • 2017-12-28
      • 2013-03-05
      相关资源
      最近更新 更多