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類的實現。