[英]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.