2017-04-18 43 views
1

當我嘗試在服務器上運行我的PHP代碼時顯示一個非常奇怪的錯誤,但在查看代碼時未突出顯示。這是一個新的項目我使用的作曲家首次和命名空間建設等錯誤的部分是:找不到使用命名空間和自動加載器的類

[18-Apr-2017 20:06:32 UTC] PHP Fatal error: Uncaught Error: Class 'ThomasSmyth\LoginSystem' not found in /home/thomassm/public_html/php/functions/fncregister.php:4 

的文件格式:

enter image description here

LoginSystem.php

namespace ThomasSmyth; 

class LoginSystem { 
    private $core; 
    private $builder; 
    private $config; 

    function __construct(){ 
     $this->core = new coreFunctions(); 
     $this->builder = new \NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder(); 
     $this->config = require('core.config.php'); 
    } 
//... 
} 

fncRegister.php

require_once "../../vendor/autoload.php"; 
$LoginManager = new \ThomasSmyth\LoginSystem(); 

echo $LoginManager->Register($_POST["StrSurname"], $_POST["StrForename"], $_POST["StrEmail"], $_POST["StrPassword"], $_POST["DteDoB"], $_POST["StrGender"], $_POST["StrToken"]); 

composer.json

{ 
    "require": { 
     "nilportugues/sql-query-builder": "^1.5" 
    }, 
    "autoload": { 
     "psr-4": { 
      "ThomasSmyth\\": "php/lib/" 
     } 
    } 
} 

有誰有什麼可能導致這一點,不管是被代碼或服務器架設有什麼建議?

+1

對不起,我早些時候詢問了無關的事情。缺少的是LoginSystem。路徑和文件名是好的,作曲家好 - 你在嘗試..之前運行'composer dump-autoload'嗎?並關心自動加載文件。也許這會揭示一些光明。 –

+0

我沒有做轉儲,我現在應該試試嗎?另外,我應該在自動加載文件中尋找什麼?它只有2行日誌,但我注意到它沒有關閉?>標記,是嗎? –

+0

爲什麼你的文件有不同的圖標? – Hackerman

回答

1

儘管在評論中我們已經解決了這個問題,但我決定爲此寫一個答案。

問題已經有了正確的文件路徑,命名空間和composer.json配置。唯一缺少的是使用composer dump-autoload生成自動載入腳本。

該命令將創建幾個包含文件路徑與其名稱空間配對的autoload*.php文件。如Composer Website中所述。