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