您好,登錄后才能下訂單哦!
今天小編給大家分享的是PHP使用Composer注冊全局函數的詳細介紹,相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,話不多說,一起往下看吧。
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 的全局函數是否已存在,如果不存在則加載給定函數,否則將其忽略并使用已可用的函數。
關于PHP使用Composer注冊全局函數的介紹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。