繁体   English   中英

PSR-4 Autoloader无法识别子文件夹结构中的类

[英]PSR-4 Autoloader not recognizing classes in subfolder structure

我将Slim PHP用作应用程序的底层框架,并使用composer autoload来加载类。 在作曲家我有这个psr-4配置:

 "psr-4": {
      "App\\": "app/classes/"
    }

我所有的课程都在/ app / classes /文件夹中。

在我的班级文件夹中,我拥有所有常见的班级,但子文件夹中有模块特定的班级。

从我的../classes/connect.php文件中,我在相应的名称空间下有此方法:

namespace App;
class connect
{
  public function authenticate(){
    office\AuthenticationManager::acquireAppToken(200);
  }
}

在我的子文件夹../classes/office/中,我有一个名为office.php的文件,使用这种方法:

namespace App\office;
    class AuthenticationManager
    {
        public function acquireAppToken($tid)
        {
           \App\APIManager\RequestManager::sendPostRequest();
        }
    }

上面的方法正在调用位于../classes/api.php中的另一个方法

该文件中的名称空间是

namespace App\APIManager;

问题是,在调用此最后一种方法时,出现以下错误:找不到“ \\ App \\ APIManager \\ RequestManager” ...

我已经尝试使用composer dump-autoload解决此问题,但没有帮助。 为什么会发生此错误?

如果要在App\\APIManager命名空间中有一个名为RequestManager的类,则它必须位于APIManager/RequestManager.php文件中。

它也适用于AuthenticationManager类,应将其移至office/AuthenticationManager.php

看一下PSR-4示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM