Composer#管理依賴包,實作自動載入
composer透過require、remove指令對項目進行依賴套件的新增與刪除。
composer透過專案根目錄下的composer.json檔案的配置,可以實現PSR-4自動載入的規格。
composer.json架構詳解,這裡有詳細介紹如何設定該檔案。
透過對TP5.1的原始碼進行學習,TP5的自動載入主要是根據composer install指令執行後composer在vendor目錄下生產的ClassLoader類別進行重寫。 Composer自動加載機制,是建立命名空間與文件相對於項目根目錄路徑的映射關係,再通過spl_autoload_register方法註冊系統的自動加載,在自動加載邏輯當中,最核心的是怎麼樣根據上面生成的路徑,查找到對應的文件,並include(包含)進來。
composer自動載入詳細流程:
● 設定根目錄下的composer.json檔案中的autoload的自動載入對映規則。
● 呼叫composer install/update 指令,產生vendor/composer資料夾以及相關的檔案。其中命名空間與檔案路徑的對應保存在autoload_psr4.php檔案中。同時產生ClassLoader.php文件,該文件是自動載入的工具類,透過解析命名空間,查找到相關文件,以便include進來。
● 在入口檔案處include vendor資料夾下面的autoload.php檔案。若要更改自動載入相關的官方,自訂一些操作,可以根據composer產生的ClassLoader檔案自行編寫一個載入器工具類,前提是理解composer的自動載入原理,以及PSR4自動載入規格。具體的可以參考tp5裡面的Loader類別的實作。
更多composer相關技術文章,請造訪composer專欄:https://www.php.cn/tool/composer/
以上是Composer實作專案的自動載入(Composer管理依賴套件)的詳細內容。更多資訊請關注PHP中文網其他相關文章!