Php PSR-4自动加载程序无法识别子文件夹结构中的类
我使用Slim PHP作为我的应用程序的底层框架,使用composer autoload加载我的类。在composer中,我有以下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
"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
看看。我想说,从单独名称空间中的类中调用另一个类的静态函数是一种糟糕的做法。使用依赖注入要好得多,我认为从单独命名空间中的类中调用另一个类的静态函数是一种糟糕的做法。使用依赖注入要好得多。