[英]PHP Composer Autoloader Class not Found Exception
標題說明了自己。 所以這是我的項目結構:
|src
|Database
|Core
|MySQL.php
|Support
start.php
|vendor
composer.json
index.php
MySQL.php文件:
<?php
namespace Database\Core;
//Some methods here
index.php和start.php文件:
//start.php file
<?php
require __DIR__ . '/../vendor/autoload.php';
?>
//index.php file
<?php
use Database\Core;
require __DIR__ . '/src/start.php';
$mysql = new MySQL(); // Gets exception Class 'MySQL' cannot found etc.
?>
最后我的composer.json自動加載部分:
"autoload": {
"psr-4": "Database\\": "src/" // Also tried "src/Database" too
}
問題出在哪兒? 我真的厭倦了試圖應對這種情況。 請幫幫我們! 謝謝。
初始化類時需要包含命名空間:
$mysql = new Database\Core\MySQL();
要么
use Database\Core\MySQL;
$mysql = new MySQL();
請參見使用命名空間:別名/導入
除了沒有使用已經提到的正確use
聲明之外,PSR-4不能像那樣工作。 它更像是一個別名。 你基本上是說src
等於Database
。 因此,要在其中創建一個名為Database
的目錄,就意味着完全限定的名稱空間+類等於'Database \\ Database \\ Core \\ MySQL`。 在這種情況下,您想使用PSR-0,或調整PSR-4定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.