摘要:自動載入函數(shù)寫到了文件夾下的類中的一個方法里,根據(jù)前邊講到的規(guī)范,類的命名空間與絕對路徑保持了一致。比如當文件夾下的類載入時,打印自動載入函數(shù)中參數(shù)值是。
PSR-0
PSR-0是php業(yè)界提出的一個大家共同遵循的規(guī)范,很多php框架都遵循PSR-0規(guī)范,它有三項約定:
php的命名空間必須與絕對路徑一致
類名的首字母必須大寫
除入口文件外,其它的.php文件必須只有一個類
開發(fā)一個符合PSR-0規(guī)范的框架很簡單,只要滿足下面三個條件就可以了:
全部使用命名空間
php類庫文件自動載入,不能有include/require
保證有單一入口
類自動載入SPL(Standard PHP Library)是php的標準拓展類庫,php實現(xiàn)類自動載入推薦使用SPL提供的spl_autoload_register方法注冊一個類自動載入函數(shù)。下面是一個簡單的例子。
簡單例子demo目錄結(jié)構(gòu)很簡單,只包含唯一入口文件index.php。我把自動載入函數(shù)另外寫到了SplAutoload文件夾下的一個類文件中,通過include_once引入到入口文件中實現(xiàn)類庫的自動載入。
自動載入函數(shù)寫到了SplAutoload文件夾下的Autoload類中的一個方法里,根據(jù)前邊講到的規(guī)范,類的命名空間與絕對路徑保持了一致。Autoload類源代碼如下:
其中自動載入函數(shù)load方法的參數(shù)$class其實是在類自動載入過程中,對載入類的唯一標識,它是一個帶有命名空間的類名字符串。比如當APPController文件夾下的LoginController類載入時,打印自動載入函數(shù)中參數(shù)值$class是:AppControllersLoginController。所以PSR-0中的規(guī)范約定:php的命名空間必須與絕對路徑一致可以保證載入類的唯一性,避免混淆和重復載入相同的類導致的錯誤。
為了做演示,我們在APPControllers文件夾下新建了兩個類文件:LoginController和UserController。它們中的內(nèi)容很簡單,只是打印信息,要注意它們符合PSR-0規(guī)范,所以命名空間的設(shè)置要符合標準。源代碼如下:"); } }入口文件中的內(nèi)容基本上和前邊簡單的例子一樣,只是將自動載入函數(shù)寫到了多帶帶的文件里進行管理,在入口文件中直接調(diào)用指定類的中的方法就可以了,無需自動載入了。下面是入口腳本代碼和演示結(jié)果:
queryMsg();至次,一個簡單的符合PSR-0規(guī)范的實現(xiàn)類自動載入的PHP基礎(chǔ)框架就搭建完成了!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28779.html
摘要:詳細說明此處的類泛指所有的類接口可復用代碼塊以及其它類似結(jié)構(gòu)。末尾的類名必須與對應(yīng)的以為后綴的文件同名。完整類名命名空間前綴文件基目錄文件路徑關(guān)于本規(guī)范的實現(xiàn),可參閱相關(guān)實例注意實例并不屬于規(guī)范的一部分,且隨時會有所變動。 Autoloader 關(guān)鍵詞 必須(MUST)、一定不可/一定不能(MUST NOT)、需要(REQUIRED)、將會(SHALL)、不會(SHALL NOT)、應(yīng)...
摘要:自動加載規(guī)范此規(guī)范已被棄用本規(guī)范已于年月日被標記為棄用,目前最新的替代規(guī)范為。本文是為自動加載器實現(xiàn)通用自動加載,所需要遵循的編碼規(guī)范。這也是目前建議的類文件載入方式。 自動加載規(guī)范 此規(guī)范已被棄用 - 本規(guī)范已于2014年10月21日被標記為棄用,目前最新的替代規(guī)范為 [PSR-4] 。 本文是為自動加載器(autoloader)實現(xiàn)通用自動加載,所需要遵循的編碼規(guī)范。 規(guī)范說明 ...
摘要:是一系列關(guān)于開發(fā)的規(guī)范,分有好幾個版本,自己學的也較為膚淺,但還是希望能時常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個簡單地必要規(guī)范的記錄。所有文件必須使用作為行的結(jié)束符。 PSR是一系列關(guān)于PHP開發(fā)的規(guī)范,分有好幾個版本,自己學的也較為膚淺,但還是希望能時常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個簡單地必要規(guī)范的記錄。(就是個搬磚的。。。)...
摘要:前言在開始之前,歡迎關(guān)注我自己的博客這篇文章是對自動加載功能的一個總結(jié),內(nèi)容涉及的自動加載功能的命名空間的與標準等內(nèi)容。要實現(xiàn)第一步,第二步的功能,必須在開發(fā)時約定類名與磁盤文件的映射方法,只有這樣我們才能根據(jù)類名找到它對應(yīng)的磁盤文件。 前言 在開始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn 這篇文章是對PHP自動加載功能的一個總結(jié),內(nèi)容涉及PHP的自動加載功能、P...
摘要:索性讀一下它的源碼。行載入類載入類,這個類比較重要,實現(xiàn)了自動加載。注冊錯誤和異常處理機制加載慣例配置文件接下來我們看一下自動加載的實現(xiàn)方法。所以借助此函數(shù)可以達到自動加載。博客鏈接解讀源碼一自動加載 聽說 TP5 已經(jīng) RC4 了,曾經(jīng)在 RC3 的時候用它寫過一個小東西。官方說從 RC4 以后改動不是太大。索性讀一下它的源碼。然后順便記錄一下,如有錯漏,請路過大神多多指正! 入口 ...
閱讀 2348·2021-11-15 11:37
閱讀 2625·2021-09-23 11:21
閱讀 2951·2021-09-07 10:11
閱讀 3164·2019-08-30 15:53
閱讀 2826·2019-08-29 15:13
閱讀 1606·2019-08-26 13:57
閱讀 1098·2019-08-26 12:23
閱讀 2438·2019-08-26 11:51