PHP自動加載機制


 

類的載入共經歷了三個階段

 

第一階段是面向過程式的做法,整個項目里到處都是include或require。

問題:難看,不易維護。

.

 

第二階段是魔術方法__autoload,當new一個類的時候,如果類不存在,則會調用此方法傳入類名。

 

如今很多框架都已經采用PSR-4規范化編程
示例:

 

也就是說 命名空間加上類名 就等於該類的文件路徑 轉義一下反斜線拼上后綴名
如下

 

autoload機制可以使得PHP程序在使用類時才自動包含文件,而不是一開始就將所有的類文件全部包含,這就是自動加載。

問題:如今的項目越做越大,多人開發最終整合,甚至一個項目使用多個框架,這樣就導致出現多個__autoload函數,函數名報錯,函數內容不兼容。

 

第三階段是目前的做法,PHP推出了spl_autoload_register方法,該方法可以注冊一個autoload,並且可以多次注冊。

 

有多種寫法,各大PHP框架中都能找到自動加載身影。

 

注冊的函數會進入隊列中,多次注冊時,先進先出,加載成功則終止,加載失敗會繼續調用隊列中下一個被注冊的函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM