簡體   English   中英

PSR-4 Autoloader無法識別子文件夾結構中的類

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM