簡體   English   中英

PHP Composer Autoloader類未找到異常

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

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