Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PSR-4自动加载程序无法识别子文件夹结构中的类_Php_Composer Php_Autoload_Psr 4 - Fatal编程技术网

Php PSR-4自动加载程序无法识别子文件夹结构中的类

Php PSR-4自动加载程序无法识别子文件夹结构中的类,php,composer-php,autoload,psr-4,Php,Composer Php,Autoload,Psr 4,我使用Slim PHP作为我的应用程序的底层框架,使用composer autoload加载我的类。在composer中,我有以下psr-4配置: "psr-4": { "App\\": "app/classes/" } 我的所有课程都在/app/classes/文件夹中 在“我的类”文件夹中,我有所有常用类,但子文件夹中有特定于模块的类 在我的../classes/connect.php文件中,我在相应的名称空间下拥有此方法: namespace App; class

我使用Slim PHP作为我的应用程序的底层框架,使用composer autoload加载我的类。在composer中,我有以下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/i中有一个名为office.php的文件,其方法如下:

namespace App\office;
    class AuthenticationManager
    {
        public function acquireAppToken($tid)
        {
           \App\APIManager\RequestManager::sendPostRequest();
        }
    }
上述方法正在调用位于../classes/api.php中的另一个方法

该文件中的命名空间为

namespace App\APIManager;
问题是,在调用最后一个方法时,我得到以下错误: 找不到“\App\apimager\RequestManager”


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

如果希望在
App\apimager
命名空间中有一个名为
RequestManager
的类,那么它必须位于
apimager/RequestManager.php
文件中

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


查看。

如果希望在
App\apimager
命名空间中有一个名为
RequestManager
的类,那么它必须位于
apimager/RequestManager.php
文件中

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


看看。

我想说,从单独名称空间中的类中调用另一个类的静态函数是一种糟糕的做法。使用依赖注入要好得多,我认为从单独命名空间中的类中调用另一个类的静态函数是一种糟糕的做法。使用依赖注入要好得多。