包拿起你的「依賴」不使用名稱空間或很多其他的作曲家自動加載可以爲您提供神奇,讓你既可以包含類文件自己:
include "vendor/FineUploader/php-traditional-server/handler.php";
或正在使用的作曲家自動加載的Laravel,你應該定義一個類映射。
在你的作曲家JSON:
{
"autoload": {
"classmap": ["vendor/FineUploader/php-traditional-server"]
}
}
然後運行composer dump-autoload
(包括 「供應商/ autoload.php」 已經由Laravel引導提供)。
在您的代碼需要它們時,其庫中的所有類都將自動加載。
更新:爲什麼classmap是最合適的方法。
自動加載是加載類的最有效和最高效的方式,因爲只有在實際需要類時纔會將其解析,編譯並加載到內存中。 「Classmap」自動加載是加載不在名稱空間或PSR0或4格式中的類的預期機制。
;相反地,使用一個全球性的(應用程序啓動),包括上課設置,或類似的使用作曲家自動加載機的「文件」選項將是最沒有效率的,因爲它會加載所有依賴爲所有應用程序請求,不管他們是否會被使用。事實上,對於類依賴關係使用自動載入「文件」比在每個腳本中使用特定包含的傳統方法更糟糕。至少你只會預先加載特定的需求,因此類似於內存使用中的自動加載。
「文件」自動加載選項專用於平面函數庫(不是OO),因爲函數調用沒有自動加載機制,所以只需在所有請求上預加載。
請注意,使用操作碼緩存會緩解兩者之間的效率差異,但內存使用問題依然存在。
當我調用'$ u = new UploadHandler();'它顯示'Class'MyApp \ Http \ Controllers \ UploadHandler'找不到' – hienbt88
@ hienbt88在'UploadHandler'前加上反斜槓。像這樣:'$ u = new \ UploadHandler();' –
謝謝,它的工作 – hienbt88