摘要:框架之間通過接口自動(dòng)加載和標(biāo)準(zhǔn)的編碼風(fēng)格進(jìn)行合作。該規(guī)范的精髓是把命名空間的前綴和系統(tǒng)中的目錄對應(yīng)起來。
PHP-FIG
1).即PHP Framework Interop Group。這個(gè)組織發(fā)布推薦的規(guī)范,而不是強(qiáng)制規(guī)范。
2).PHP-FIG的使命是實(shí)現(xiàn)框架的互操作性。框架的互操作性指的是通過自動(dòng)加載機(jī)制、接口和標(biāo)準(zhǔn)的風(fēng)格,讓框架互相合作。
3).框架之間通過接口、自動(dòng)加載和標(biāo)準(zhǔn)的編碼風(fēng)格進(jìn)行合作。
1).即PHP推薦標(biāo)準(zhǔn)。這是上面的組織制定的推薦規(guī)范。例如下面的規(guī)范:
PSR-1:基本的代碼風(fēng)格
必須把PHP代碼放在或?>標(biāo)簽中。
編碼字符集必須是UTF-8
一個(gè)PHP文件可以定義類或者處理數(shù)據(jù),但是不能同時(shí)做這兩件事
遵循自動(dòng)加載
類命名遵循駝峰式命名
常量大寫
方法名稱使用第一個(gè)字母小寫的駝峰式命名
PSR-2:嚴(yán)格的代碼風(fēng)格
貫徹執(zhí)行PSR-1
使用四個(gè)空格縮進(jìn)
使用UNIX風(fēng)格換行符
不能使用關(guān)閉標(biāo)簽
每一行不能超過120個(gè)字符
PHP關(guān)鍵字一律小寫
命名空間之后必須跟一個(gè)空行
類的定義體起始括號應(yīng)該在類命后新起一行,類的結(jié)束括號也必須新起一行
方法名的括號換行方式和類一直,參數(shù)除了第一個(gè)參數(shù)前面要有空格。
必須聲明屬性和方法的可見性
可以使用php code sniffer檢查代碼格式
控制結(jié)構(gòu)關(guān)鍵字后面的起始括號應(yīng)該和控制結(jié)構(gòu)的關(guān)鍵字寫在同一行,結(jié)束括號另起一行。例子如下
isAwake() === true) { do { $gorilla->beatChest(); } while ($libs->isAsleep() === true); $libs->flyAway(); }
PSR-3:日志記錄接口
該規(guī)范不是一系列方針,而是一個(gè)接口,規(guī)定了PHP日志記錄器組件可以實(shí)現(xiàn)的方法。
PSR-4:自動(dòng)加載
這個(gè)規(guī)范描述了一個(gè)標(biāo)準(zhǔn)的自動(dòng)加載策略。自動(dòng)加載策略是指在運(yùn)行時(shí)按需查找PHP類、接口或者形狀,并將其載入PHP解析器,支持PSR-4自動(dòng)加載器標(biāo)準(zhǔn)的PHP組件和框架使用同一個(gè)自動(dòng)加載器就能找到相關(guān)代碼,然后將其載入PHP解釋器。
該規(guī)范的精髓是把命名空間的前綴和系統(tǒng)中的目錄對應(yīng)起來。
自己實(shí)現(xiàn)psr-4自動(dòng)加載器
這樣的話當(dāng)我們使用 FooBarBazQux這個(gè)類的時(shí)候,使用SPL注冊了上面這個(gè)函數(shù)之后,PHP就會嘗試從/path/to/project/src/Baz/Qux.php 加載這個(gè)類。
專題系列PHP專題系列目錄地址:https://github.com/xx19941215/webBlog
PHP專題系列預(yù)計(jì)寫二十篇左右,主要總結(jié)我們?nèi)粘HP開發(fā)中容易忽略的基礎(chǔ)知識和現(xiàn)代PHP開發(fā)中關(guān)于規(guī)范、部署、優(yōu)化的一些實(shí)戰(zhàn)性建議,同時(shí)還有對Javascript語言特點(diǎn)的深入研究。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/23294.html
不要使用mysql_*系列函數(shù),查詢時(shí)盡量對sql語句進(jìn)行預(yù)處理 PHP官方目前已經(jīng)將此系列函數(shù)標(biāo)記為棄用狀態(tài),添加PHP對mysql的支持,編譯時(shí)使用下面的參數(shù) --enable-mysqlnd --with-pdo-mysql --with-mysqli --with-mysql=mysqlnd mysql_*系列函數(shù)不支持 預(yù)處理語句,事務(wù),存儲過程,異步查詢,多條...
摘要:簡單來說,就是我們創(chuàng)建一對密鑰,其中一個(gè)是私鑰保存在本地設(shè)備中,另一個(gè)是公鑰,傳到你的中,之所以叫做密鑰對,是因?yàn)槭褂霉€加密的消息只能使用對應(yīng)的私鑰解密。 配置 1).如果你使用的不是Pass,那么先配置VPS或者專用的服務(wù)器才能運(yùn)行PHP應(yīng)用。本文假設(shè)你會使用vim或者nano編輯器。2).我們選擇nginx服務(wù)器來作為我們的web服務(wù)器。 首次登錄 ssh root@123.45...
平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經(jīng)典排序算法(帶動(dòng)圖演示) 為什么知乎前端圈普遍認(rèn)為H5游戲和H5展示的JSer 個(gè)人整理和封裝的YU.js庫|中文詳細(xì)注釋|供新手學(xué)習(xí)使用 擴(kuò)展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉(zhuǎn)換...
平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經(jīng)典排序算法(帶動(dòng)圖演示) 為什么知乎前端圈普遍認(rèn)為H5游戲和H5展示的JSer 個(gè)人整理和封裝的YU.js庫|中文詳細(xì)注釋|供新手學(xué)習(xí)使用 擴(kuò)展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉(zhuǎn)換...
平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經(jīng)典排序算法(帶動(dòng)圖演示) 為什么知乎前端圈普遍認(rèn)為H5游戲和H5展示的JSer 個(gè)人整理和封裝的YU.js庫|中文詳細(xì)注釋|供新手學(xué)習(xí)使用 擴(kuò)展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉(zhuǎn)換...
閱讀 4170·2021-09-29 09:34
閱讀 3870·2021-09-27 13:34
閱讀 655·2021-09-24 09:47
閱讀 3101·2019-08-30 15:53
閱讀 1884·2019-08-26 13:54
閱讀 2135·2019-08-26 13:43
閱讀 614·2019-08-23 14:47
閱讀 1802·2019-08-23 14:28