我使用Slim PHP作为我的app和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来解决这个问题,但它没有帮助。为什么会发生这种错误?
答案 0 :(得分:3)
如果您希望RequestManager
命名空间中有一个名为App\APIManager
的类,则它必须位于APIManager/RequestManager.php
文件中。
它也适用于AuthenticationManager
类,应移至office/AuthenticationManager.php