国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 > php教程 > php手冊 > 正文

PHP的PSR系列規(guī)范

不言
發(fā)布: 2018-05-23 14:58:41
原創(chuàng)
2708人瀏覽過

PSR

是php standard recommendation的簡寫,它其實(shí)應(yīng)該叫psrs,即系列推薦標(biāo)準(zhǔn):目前通過的規(guī)范有psr-0(autoloading standard)、psr-1(basic coding standard)、psr-2(coding style guide)、psr-3(logger interface)、psr-4(improved autoloading)。它不是php官方標(biāo)準(zhǔn),而是從如zend、symfony2等知名php項(xiàng)目中提煉出來的一系列標(biāo)準(zhǔn),目前有越來有多的社區(qū)項(xiàng)目加入成員并遵循該標(biāo)準(zhǔn)。

PHP-FIG?— PHP Framework Interoperability Group, 是制定PSRs開發(fā)規(guī)范的組織,它的成員由很多知名PHP社區(qū)項(xiàng)目組成,在其官網(wǎng)首頁下方可以看到成員清單。這些成員制定規(guī)范,并且落實(shí)在自己的項(xiàng)目中。

其實(shí)各個(gè)PSR規(guī)范的內(nèi)容都很簡潔明了,比起那些動則幾十頁的規(guī)范,真是好太多了。

PSR-0(Autoloading Standard)

PSR-0即類自動加載規(guī)范(原文:官網(wǎng)、GitHub)。從2014-10-21日起,該規(guī)范被標(biāo)記為Deprecated,由PSR-4替代。它的內(nèi)容十分簡潔。

內(nèi)容:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

一個(gè)完全合格的命名空間和類名必須有以下的結(jié)構(gòu)“\\(\)*

每個(gè)命名空間必須有頂級的命名空間(“Vendor Name”)

每個(gè)命名空間可以有任意多個(gè)子命名空間

每個(gè)命名空間在被從文件系統(tǒng)加載時(shí)必須被轉(zhuǎn)換為“操作系統(tǒng)路徑分隔符”(DIRECTORY_SEPARATOR?)

每個(gè)“_”字符在“類名”中被轉(zhuǎn)換為DIRECTORY_SEPARATOR 。“_”符號在命名空間中沒有明確含義

符合命名標(biāo)準(zhǔn)的命名空間和類名必須以“.php”結(jié)尾來加載文件

Vendor Name,命名空間,類名可以由大小寫字母組成,其中命名空間和類名是大小寫敏感的以保證多系統(tǒng)兼容性

PSR-1(Basic Coding Standard)

PSR-1即基礎(chǔ)編碼標(biāo)準(zhǔn)(原文:官網(wǎng)、GitHub)。內(nèi)榮也十分簡潔,包含了類文件、類名、類方法名的命名方法。

內(nèi)容:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

源文件必須只使用?

源文件中php代碼的編碼格式必須只使用不帶BOM的UTF-8

一個(gè)源文件建議只用來做聲明(類,函數(shù),常量等)或者只用來做一些引起副作用的操作(例如:輸出信息,修改.ini配置文件等),但不應(yīng)該同時(shí)做這兩件事

命名空間和類必須遵守PSR-0標(biāo)準(zhǔn)

類名必須使用StudlyCaps寫法

類中的常量必須只由大寫字母和下劃線(_)組成

方法名必須使用cameCase寫法

PSR-2(Coding Style Guide)

PSR-2即編碼風(fēng)格標(biāo)準(zhǔn)(原文:官網(wǎng)、GitHub)。內(nèi)容就稍多,但還是比較簡潔,它以PSR-1為基礎(chǔ),包含了縮進(jìn)、每行代碼長度、換行、方法可見性聲明、空格和方法體大括號換行的相關(guān)規(guī)定。

標(biāo)準(zhǔn)內(nèi)容:

代碼必須遵守?PSR-1

代碼必須使用4個(gè)空格來進(jìn)行縮進(jìn),而不是用制表符

一行代碼的長度不應(yīng)有硬限制;軟限制必須為120個(gè)字符,建議每行代碼80個(gè)字符或者更少

在命名空間的聲明下面必須有一行空行,并且在use的聲明下面也必須有一行空行

類的左花括號必須放到其聲明下面自成一行,右花括號則必須放到類主體下面自成一行

方法的左花括號必須放到其聲明下面自成一行,右花括號則必須放到方法主體的下一行

所有的屬性和方法必須有可見性聲明;abstract和final聲明必須在可見性聲明之前;而static聲明必須在可見性聲明之后

在結(jié)構(gòu)控制關(guān)鍵字的后面必須有一個(gè)空格;而方法和函數(shù)調(diào)用時(shí)后面不可有空格

結(jié)構(gòu)控制的左花括號必須跟其放在同一行,右花括號必須放在該結(jié)構(gòu)控制代碼主體的下一行

控制結(jié)構(gòu)的左括號之后不可有空格,右括號之前也不可有空格

PSR-3(Logger Interface)

PSR-3是對應(yīng)用日志類的通過接口的定義(原文:官網(wǎng)、GitHub)。內(nèi)容很簡單,就是一個(gè)接口,官方示例代碼引用一下就好了。當(dāng)然,在具體的應(yīng)用中,只要遵循該接口,肯定可以定制相應(yīng)的實(shí)現(xiàn)。

基礎(chǔ)內(nèi)容:

LoggerInterface暴露八個(gè)接口用來記錄八個(gè)等級(debug, info, notice, warning, error, critical, alert, emergency)的日志。

第 九個(gè)方法是log,接受日志等級作為第一個(gè)參數(shù)。用一個(gè)日志等級常量來調(diào)用這個(gè)方法必須和直接調(diào)用指定等級方法的結(jié)果一致。用一個(gè)本規(guī)范中未定義且不為具 體實(shí)現(xiàn)所知的日志等級來調(diào)用該方法必須拋出一個(gè)Psr\Log\InvalidArgumentException。不推薦使用自定義的日志等級,除非你 非常確定當(dāng)前類庫對其有所支持。

PSR-4(Improved Autoloading)

PSR-4即改進(jìn)版的自動加載規(guī)范(原文:官網(wǎng)、GitHub)。它是PSR-0規(guī)范的接替者。它可以與任何其它的自動加載規(guī)范兼容,包括PSR-0。

內(nèi)容:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

術(shù)語「類」是一個(gè)泛稱;它包含類,接口,traits 以及其他類似的結(jié)構(gòu);

完全限定類名應(yīng)該類似如下范例:()*

完全合規(guī)類名必須有一個(gè)頂級命名空間(Vendor Name)

完全合規(guī)類名可以有多個(gè)子命名空間

完全合規(guī)類名應(yīng)該有一個(gè)終止類名

下劃線在完全合規(guī)類名中是沒有特殊含義的

字母在完全合規(guī)類名中可以是任何大小寫的組合

所有類名必須以大小寫敏感的方式引用

當(dāng)從完全合規(guī)類名載入文件時(shí):

在完全合規(guī)類名中,連續(xù)的一個(gè)或幾個(gè)子命名空間構(gòu)成的命名空間前綴(不包括頂級命名空間的分隔符),至少對應(yīng)著至少一個(gè)基礎(chǔ)目錄

在「命名空間前綴」后的連續(xù)子命名空間名稱對應(yīng)一個(gè)「基礎(chǔ)目錄」下的子目錄,其中的命名 空間分隔符表示目錄分隔符。子目錄名稱必須和子命名空間名大小寫匹配

終止類名對應(yīng)一個(gè)以 .php 結(jié)尾的文件。文件名必須和終止類名大小寫匹配

自動載入器的實(shí)現(xiàn)不可拋出任何異常,不可引發(fā)任何等級的錯(cuò)誤;也不應(yīng)返回值

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號