[英]spl autoloading: Class is not found – namespace issue?
我只是用PHP自動加載功能弄濕了自己。 我實際上認為我已經掌握了基礎知識,但是無論如何仍然無法正常工作。
我得到以下目錄結構:
myLib
-bootstrap.php
-sven
-project
project.php
bootstrap.php
是將包含在使用該lib中的文件。 在此文件中,我僅具有以下代碼:
spl_autoload_extensions('.php');
spl_autoload_register();
$var = new \sven\project\project();
$var->init();
並在project.php
:
namespace sven\project;
class project {
public function init() {
echo 'It works!';
}
}
據我了解,自動加載器的使用方式,核心PHP自動加載器應將名稱空間轉換為目錄,然后尋找包含該類的php。
而不顯示“它有效!”,而是引發致命錯誤。 不幸的是,我無法確切地說出該錯誤是什么,因為CMS僅通知我一個致命錯誤。
但是,通過如此簡單的結構,我相信該錯誤非常基本,並且對於知道其工作原理的人來說很容易找到。
該示例在哪里出問題–我是否正確描述了自動裝帶器在該設置中應如何工作,還是有誤解?
編輯:最終使錯誤日志運行:
Fatal error: Class undefined: sven\\\\project\\\\project\\\\project\\\\project in /xxx/bootstrap.php on line 36
那顯然看起來是錯誤的,但是如何改變呢? 為什么會有兩個反斜杠?
spl_autoload_extensions('.php');
spl_autoload_register();
此代碼僅適用於PHP 5.3及更高版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.