摘要:注本文算是筆者對(duì)規(guī)范翻譯學(xué)習(xí)筆記,之后會(huì)陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯(cuò)誤的地方,希望讀者能夠指正,非常感謝什么是是標(biāo)準(zhǔn)建議的簡(jiǎn)寫,是由組織框架交互操作組織提出。的工作是尋找項(xiàng)目之間的共性,以及讓開發(fā)者能更好協(xié)同工作的方式。
注:本文算是筆者對(duì)PSR規(guī)范翻譯/學(xué)習(xí)筆記,之后會(huì)陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯(cuò)誤的地方,希望讀者能夠指正,非常感謝.
什么是PSR?? ??? PSR是PHP Standards Recommendations(PHP標(biāo)準(zhǔn)建議) 的簡(jiǎn)寫,是由PHP-FIG組織(PHP Framework Interop Group-PHP框架交互操作組織)提出。PHP-FIG的工作是尋找項(xiàng)目之間的共性,以及讓開發(fā)者能更好協(xié)同工作的方式。讀者可能在瀏覽一些PHP技術(shù)文章的時(shí)候,可能會(huì)看到PSR-1,PSR-2,PSR-4,PSR-7等,這些是PHP-FIG的標(biāo)準(zhǔn)建議,這些標(biāo)準(zhǔn)建議的命名構(gòu)成是以"PSR-"+"序號(hào)",每個(gè)PHP_FIG標(biāo)準(zhǔn)建議都是為了解決大部分框架頻繁遇到的一個(gè)特定的問題,而與此同時(shí)框架不需要自己再去重復(fù)解決問題,而是遵循PSR標(biāo)準(zhǔn)建議,采納共享的解決方案.
目前PSR規(guī)范有哪些?PSR規(guī)范
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide
PSR-3: Logger Interface
PSR-4: Autoloader
PSR-6: Caching Interface
PSR-7: HTTP message interfaces
PSR-11: Container interface
PSR-13: Link definition interfaces
PSR-16: Common Interface for Caching Libraries
什么是 PSR-1?原文鏈接:PSR-1 Basic Coding Standard
Aims to ensure a high level of technical interoperability between shared PHP code.
PSR-1 就是為了能夠使共享的PHP代碼之間有高度的互操作性.
OverView (概覽)PHP文件(MUST)必須只使用
PHP文件(MUST)必須只能使用無BOM頭的UTF-8編碼格式.
PHP文件(SHOULD)應(yīng)該要么聲明 classe,functions。constants 等等,或者 general ouput(通用輸出?),改變php.ini的配置等等,但是(SHOULD Not)不應(yīng)該兩個(gè)都有.
命名空間和類(MUST)必須要遵循自動(dòng)加載的PSR規(guī)范[PSR-0,PSR-4];
類名明明(MUST)必須以大駝峰式.
類中的常量的命名(MUST)必須為以下劃線分割的大寫字母.
方法名(MUST)必須為小駝峰式.
PHP TagsPHP代碼(MUST)必須使用長(zhǎng)標(biāo)簽 或者 短標(biāo)簽 = ?>;(MUST NOT)不能有其他類型的寫法.
Character EncodingPHP代碼(MUST)必須只使用無BOM頭的UTF-8編碼格式.
Side Effects?????一個(gè)PHP文件(SHOULD)必須要聲明一些class,function,constant等,并且沒有side effects (執(zhí)行邏輯),或者(SHOULD)應(yīng)該有side effects(執(zhí)行邏輯),但是(SHOULD NOT)不應(yīng)該兩個(gè)都同時(shí)存在.
???"side effects"代表的就是和聲明class,function,constant等不直接相關(guān)聯(lián)的執(zhí)行邏輯,僅僅來自這個(gè)包含的文件。
??"Side effects" 包含以下操作,但不僅限于此:general output(通用輸出), "require"和"include"的使用,連接外部服務(wù),修改php.ini的設(shè)置,觸發(fā)錯(cuò)誤或者拋出異常,修改全局或者靜態(tài)變量,讀取或者寫入文件操作等等.
??以下是一個(gè)我們要避免的例子,就是一個(gè)具有"declarations"和side effects的PHP文件。
"; // declaration function foo() { // function body }
以下是一個(gè)是正確的例子,只包含了"declaraion"沒有"side effects".
Namespace and Class NamesThis means each class is in a file by itself, and is in a namespace of at least one level: a top-level vendor name
???命名空間和類(MUST)必須要遵循自動(dòng)加載規(guī)范【PSR-0,PSR-4】,這意味著每個(gè)類在一個(gè)文件中,并且至少在一個(gè)level的命名空間中:最高level的vendor名稱.
???類名命名必須以大駝峰式.
???PHP5.3及以后版本中,寫代碼(MUST)必須使用正式的命名空間.
For example:
???PHP5.2.x以及之前的版本(SHOULD)應(yīng)該使用pseudo-namespacing(偽命名空間)的慣例:在類名前+"Vendor_"前綴.
The term “class” refers to all classes, interfaces, and traits.
本文中的術(shù)語class,代表的是所有的class,interface,traits。
Constants類中的常量(MUST)必須為以下劃線分割的大寫字母.
for example:Properties對(duì)于類的屬性,本文檔有意省略了對(duì)屬性名的命名方式.(大駝峰/小駝峰/下劃線等)
無論采用什么樣的命名方式(SHOULD)應(yīng)該和其所在scope相一致.scope 可能為vendor級(jí)別,package級(jí)別,class級(jí)別,或者method級(jí)別.
Methods方法名(MUST)必須聲明為小駝峰式.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23342.html
摘要:公認(rèn)規(guī)范總結(jié)規(guī)范中文版大部分來源翻譯部分包含例子,附錄包含了一些規(guī)范的實(shí)現(xiàn)基本編碼標(biāo)準(zhǔn)編碼風(fēng)格指南日志接口規(guī)范自動(dòng)加載規(guī)范規(guī)范英文版未使用草案已棄用規(guī)范原理實(shí)現(xiàn)實(shí)現(xiàn)自動(dòng)加載實(shí)現(xiàn)原理資料來源與參考 PSR公認(rèn)規(guī)范總結(jié) PSR規(guī)范中文版(大部分來源google翻譯)(cn) 部分psr包含例子,附錄包含了一些規(guī)范的實(shí)現(xiàn) PSR-1:基本編碼標(biāo)準(zhǔn) PSR-2:編碼風(fēng)格指南 PSR-3:日志...
摘要:標(biāo)準(zhǔn)規(guī)范簡(jiǎn)介是的簡(jiǎn)寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。具體標(biāo)準(zhǔn)有有了統(tǒng)一編碼風(fēng)格規(guī)范,更有利于查看和學(xué)習(xí)各個(gè)框架或類庫,不不需要每次都適應(yīng)新的編碼風(fēng)格。同時(shí)在開發(fā)團(tuán)隊(duì)內(nèi)部使用統(tǒng)一的編碼規(guī)范更有利于代碼審查版本控制團(tuán)隊(duì)內(nèi)部交流。 PHP 標(biāo)準(zhǔn)規(guī)范 PSR PSR 簡(jiǎn)介 PSR 是 PHP Standard Recommendations 的簡(jiǎn)寫,由 PHP FIG 組織制定的 PHP...
摘要:原文發(fā)表在我的個(gè)人網(wǎng)站利用一步一步構(gòu)建自己的框架一基礎(chǔ)準(zhǔn)備一統(tǒng)天下的時(shí)代已經(jīng)到來白巖松一個(gè)時(shí)代結(jié)束了另一個(gè)時(shí)代開始了??蚣芸苫ビ眯孕〗M,簡(jiǎn)稱,成立于年。 原文發(fā)表在我的個(gè)人網(wǎng)站 利用 Composer 一步一步構(gòu)建自己的 PHP 框架(一)——基礎(chǔ)準(zhǔn)備 『Composer 一統(tǒng)天下的時(shí)代已經(jīng)到來!』 ——白巖松 一個(gè)時(shí)代結(jié)束了,另一個(gè)時(shí)代開始了。 Framework ...
摘要:源代碼文件必須只用不帶的編碼。類常量必須全部使用大寫字母和下劃線進(jìn)行聲明。方法名必須聲明為樣式。類名必須聲明為的形式。面向或更高版本的代碼必須使用正式的命名空間。不論使用了哪一種風(fēng)格,它應(yīng)該在一個(gè)合理的范圍內(nèi)具有一致性。 翻譯:薛粲授權(quán)許可:CC BY-NC 4.0 這份文檔是《PSR-1: Basic Coding Standard》的非官方譯文。 這份標(biāo)準(zhǔn)文檔闡述了那些需要考慮的標(biāo)...
摘要:首先你應(yīng)該是在用以上的版本,如果版本在這之下,是時(shí)候該升級(jí)了。按照其官網(wǎng)的說法,這個(gè)組織的目的并不是告訴你你應(yīng)該怎么做,只是一些主流的框架之間相互協(xié)商和約定。和沒有出現(xiàn)在以上的列表中,是因?yàn)檫€沒有投票通過。不要被這些話所困擾。 首先你應(yīng)該是在用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時(shí)候該升級(jí)了。我建議如果有條件,最好使用最新的版本。 你應(yīng)該看過 PHP The R...
閱讀 3664·2021-10-11 10:58
閱讀 2252·2021-10-08 10:05
閱讀 2034·2021-09-27 13:34
閱讀 3578·2019-08-30 15:53
閱讀 2736·2019-08-30 14:02
閱讀 3564·2019-08-29 16:55
閱讀 625·2019-08-29 15:41
閱讀 1073·2019-08-29 15:23