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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PSR-4 Autoloader无法识别子文件夹结构中的类相关的知识,希望对你有一定的参考价值。

我使用Slim php作为我的app和composer autoload的底层框架,用于加载我的类。在作曲家我有这个psr-4配置:

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

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

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

从我的../classes/connect.php文件我在相应的命名空间下有这个方法:

namespace App;
class connect
{
  public function authenticate(){
    officeAuthenticationManager::acquireAppToken(200);
  }
}

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

namespace Appoffice;
    class AuthenticationManager
    {
        public function acquireAppToken($tid)
        {
           AppAPIManagerRequestManager::sendPostRequest();
        }
    }

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

该文件中的命名空间是

namespace AppAPIManager;

问题是,当调用最后一个方法时,我收到以下错误:“ App APIManager RequestManager”未找到...

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

答案

如果你想在RequestManager命名空间中有一个名为AppAPIManager的类,那么它必须位于APIManager/RequestManager.php文件中。

它也适用于AuthenticationManager类,应该移动到office/AuthenticationManager.php

看看PSR-4 examples

以上是关于PSR-4 Autoloader无法识别子文件夹结构中的类的主要内容,如果未能解决你的问题,请参考以下文章

php PSR-4类自动加载器#php #class #autoloader

为啥父 UIStackView 无法识别子 StackView 的高度?

无法识别子查询中“选择”附近的输入

iOS:无法识别子视图上的手势

使用PSR-4配合composer autoload 自动加载文件夹

bzoj1396 识别子串