Composer 使用不同的技術和標準簡化了類的自動加載,當今最常見的自動加載標準是 PSR-4:
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
這將使用帶有 “App” 名稱空間前綴的 PSR-4 標準將 src 檔案夾中的所有類自動加載,但是,我們如何自動加載不直接屬于命名空間類的檔案、全域幫助程式函式呢?那么,如果你在 Composer 網站上瀏覽官方檔案 , 你可以看到 “autoload” 模式支持多種標準和技術,
- PSR-0 是舊的自動加載標準,已棄用,但仍支持,我們應該避免使用它,
- PSR-4 是現代自動加載標準,取代了 PSR-0,它是命名空間類的主要自動加載標準,
- classmap 是用于加載沒有名稱空間或名稱空間前綴的類的自動加載標準,
- files 是加載檔案的加載標準,
你可能已經猜到了,files 是我們需要在不定義類的情況下加載 PHP 檔案的標準,該類僅包含 helper 方法,files 標準接受每個檔案的相對路徑陣列,通常,當你要定義全域助手方法時,最好使用 “functions.php” 或 “helpers.php” 名稱創建一個 PHP 檔案,并將所有助手函式放入其中,
"autoload": {
"files": [
"src/functions.php"
]
}
關于如何撰寫和自動加載全域函式,有一些常見的做法,你需要記住,由于在 Composer 加載這些函式時沒有命名空間,因此它們可能與現有功能沖突,Composer 自動加載機制始終檢查給定的函式或類是否已經存在,如果存在,Composer 會引發例外,拋出 “cannot redeclare”,為了避免這種情況,在加載函式之前,我們可以檢查它是否可用,
functions.php
if (!function_exists('sayHello')) {
function sayHello()
{
return 'Hello!';
}
}
在此示例中,我們要求 Composer 檢查名稱為 sayHello 的全域函式是否已存在,如果不存在則加載給定函式,否則將其忽略并使用已可用的函式,
更多學習內容請訪問:
騰訊T3-T4標準精品PHP架構師教程目錄大全,只要你看完保證薪資上升一個臺階(持續更新)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47266.html
標籤:PHP
上一篇:ThinkPHP6新增‘’多應用‘’與ThinkPHP5有啥區別
下一篇:PHP 8個魔術常量
