PHP PSR-2 代碼風(fēng)格規(guī)范
Jul 23, 2016 am 08:54 AM
代碼風(fēng)格規(guī)范
本篇規(guī)范是 [PSR-1][] 基本代碼規(guī)范的繼承與擴(kuò)展。 本規(guī)范希望通過制定一系列規(guī)范化php代碼的規(guī)則,以減少在瀏覽不同作者的代碼時(shí),因代碼風(fēng)格的不同而造成不便。 當(dāng)多名程序員在多個(gè)項(xiàng)目中合作時(shí),就需要一個(gè)共同的編碼規(guī)范, 關(guān)鍵詞 “必須”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 概覽 代碼必須遵循 [PSR-1][] 中的編碼規(guī)范 。 代碼必須使用4個(gè)空格符而不是 tab鍵 進(jìn)行縮進(jìn)。 每行的字符數(shù)應(yīng)該軟性保持在80個(gè)之內(nèi), 理論上一定不可多于120個(gè), 但一定不能有硬性限制。 每個(gè) namespace 命名空間聲明語句和 use 聲明語句塊后面,必須插入一個(gè)空白行。 類的開始花括號(hào)({)必須寫在函數(shù)聲明后自成一行,結(jié)束花括號(hào)(})也必須寫在函數(shù)主體后自成一行。 方法的開始花括號(hào)({)必須寫在函數(shù)聲明后自成一行,結(jié)束花括號(hào)(})也必須寫在函數(shù)主體后自成一行。 類的屬性和方法必須添加訪問修飾符(private、protected 以及 public), abstract 以及 final 必須聲明在訪問修飾符之前,而 static 必須聲明在訪問修飾符之后。 控制結(jié)構(gòu)的關(guān)鍵字后必須要有一個(gè)空格符,而調(diào)用方法或函數(shù)時(shí)則一定不能有。 控制結(jié)構(gòu)的開始花括號(hào)({)必須寫在聲明的同一行,而結(jié)束花括號(hào)(})必須寫在主體后自成一行。 控制結(jié)構(gòu)的開始左括號(hào)后和結(jié)束右括號(hào)前,都一定不能有空格符。 1.1. 例子以下例子程序簡單地展示了以上大部分規(guī)范:
通則 2.1 基本編碼準(zhǔn)則 代碼必須符合 [PSR-1][] 中的所有規(guī)范。 2.2 文件所有PHP文件必須使用Unix LF (linefeed)作為行的結(jié)束符。 所有PHP文件必須以一個(gè)空白行作為結(jié)束。 純PHP代碼文件必須省略最后的 ?> 結(jié)束標(biāo)簽。 2.3. 行行的長度一定不能有硬性的約束。 軟性的長度約束一定要限制在120個(gè)字符以內(nèi),若超過此長度,帶代碼規(guī)范檢查的編輯器一定要發(fā)出警告,不過一定不可發(fā)出錯(cuò)誤提示。 每行不應(yīng)該多于80個(gè)字符,大于80字符的行應(yīng)該折成多行。 非空行后一定不能有多余的空格符。 空行可以使得閱讀代碼更加方便以及有助于代碼的分塊。 每行一定不能存在多于一條語句。 2.4. 縮進(jìn)代碼必須使用4個(gè)空格符的縮進(jìn),一定不能用 tab鍵 。 備注: 使用空格而不是tab鍵縮進(jìn)的好處在于, PHP所有 [關(guān)鍵字][]必須全部小寫。 常量 true 、false 和 null 也必須全部小寫。 namespace 以及 use 聲明 namespace 聲明后 必須 插入一個(gè)空白行。 所有 use 必須 在 namespace 后聲明。 每條 use 聲明語句 必須 只有一個(gè) use 關(guān)鍵詞。 use 聲明語句塊后 必須 要有一個(gè)空白行。 例如:
類、屬性和方法 此處的“類”泛指所有的class類、接口以及traits可復(fù)用代碼塊。 4.1. 擴(kuò)展與繼承關(guān)鍵詞 extends 和 implements必須寫在類名稱的同一行。 類的開始花括號(hào)必須獨(dú)占一行,結(jié)束花括號(hào)也必須在類主體后獨(dú)占一行。
implements 的繼承列表也可以分成多行,這樣的話,每個(gè)繼承接口名稱都必須分開獨(dú)立成行,包括第一個(gè)。
每個(gè)屬性都必須添加訪問修飾符。 一定不可使用關(guān)鍵字 var 聲明一個(gè)屬性。 每條語句一定不可定義超過一個(gè)屬性。 不要使用下劃線作為前綴,來區(qū)分屬性是 protected 或 private。 以下是屬性聲明的一個(gè)范例:
所有方法都必須添加訪問修飾符。 不要使用下劃線作為前綴,來區(qū)分方法是 protected 或 private。 方法名稱后一定不能有空格符,其開始花括號(hào)必須獨(dú)占一行,結(jié)束花括號(hào)也必須在方法主體后單獨(dú)成一行。參數(shù)左括號(hào)后和右括號(hào)前一定不能有空格。 一個(gè)標(biāo)準(zhǔn)的方法聲明可參照以下范例,留意其括號(hào)、逗號(hào)、空格以及花括號(hào)的位置。
參數(shù)列表中,每個(gè)逗號(hào)后面必須要有一個(gè)空格,而逗號(hào)前面一定不能有空格。 有默認(rèn)值的參數(shù),必須放到參數(shù)列表的末尾。
參數(shù)列表可以分列成多行,這樣,包括第一個(gè)參數(shù)在內(nèi)的每個(gè)參數(shù)都必須單獨(dú)成行。 拆分成多行的參數(shù)列表后,結(jié)束括號(hào)以及方法開始花括號(hào) 必須 寫在同一行,中間用一個(gè)空格分隔。
需要添加 abstract 或 final 聲明時(shí), 必須寫在訪問修飾符前,而 static 則必須寫在其后。
方法及函數(shù)調(diào)用時(shí),方法名或函數(shù)名與參數(shù)左括號(hào)之間一定不能有空格,參數(shù)右括號(hào)前也 一定不能有空格。每個(gè)參數(shù)前一定不能有空格,但其后必須有一個(gè)空格。
參數(shù)可以分列成多行,此時(shí)包括第一個(gè)參數(shù)在內(nèi)的每個(gè)參數(shù)都必須單獨(dú)成行。
控制結(jié)構(gòu) 控制結(jié)構(gòu)的基本規(guī)范如下: 控制結(jié)構(gòu)關(guān)鍵詞后必須有一個(gè)空格。 左括號(hào) ( 后一定不能有空格。 右括號(hào) ) 前也一定不能有空格。 右括號(hào) ) 與開始花括號(hào) { 間一定有一個(gè)空格。 結(jié)構(gòu)體主體一定要有一次縮進(jìn)。 結(jié)束花括號(hào) } 一定在結(jié)構(gòu)體主體后單獨(dú)成行。 每個(gè)結(jié)構(gòu)體的主體都必須被包含在成對(duì)的花括號(hào)之中, 標(biāo)準(zhǔn)的 if 結(jié)構(gòu)如下代碼所示,留意 括號(hào)、空格以及花括號(hào)的位置,
應(yīng)該使用關(guān)鍵詞 elseif 代替所有 else if ,以使得所有的控制關(guān)鍵字都像是單獨(dú)的一個(gè)詞。 5.2. switch 和 case標(biāo)準(zhǔn)的 switch 結(jié)構(gòu)如下代碼所示,留意括號(hào)、空格以及花括號(hào)的位置。
一個(gè)規(guī)范的 while 語句應(yīng)該如下所示,注意其 括號(hào)、空格以及花括號(hào)的位置。
標(biāo)準(zhǔn)的 do while 語句如下所示,同樣的,注意其 括號(hào)、空格以及花括號(hào)的位置。
標(biāo)準(zhǔn)的 for 語句如下所示,注意其 括號(hào)、空格以及花括號(hào)的位置。
標(biāo)準(zhǔn)的 foreach 語句如下所示,注意其 括號(hào)、空格以及花括號(hào)的位置。
標(biāo)準(zhǔn)的 try catch 語句如下所示,注意其 括號(hào)、空格以及花括號(hào)的位置。
閉包 閉包聲明時(shí),關(guān)鍵詞 function 后以及關(guān)鍵詞 use 的前后都必須要有一個(gè)空格。 開始花括號(hào)必須寫在聲明的同一行,結(jié)束花括號(hào)必須緊跟主體結(jié)束的下一行。 參數(shù)列表和變量列表的左括號(hào)后以及右括號(hào)前,必須不能有空格。 參數(shù)和變量列表中,逗號(hào)前必須不能有空格,而逗號(hào)后必須要有空格。 閉包中有默認(rèn)值的參數(shù)必須放到列表的后面。 標(biāo)準(zhǔn)的閉包聲明語句如下所示,注意其 括號(hào)、逗號(hào)、空格以及花括號(hào)的位置。
參數(shù)列表以及變量列表可以分成多行,這樣,包括第一個(gè)在內(nèi)的每個(gè)參數(shù)或變量都必須單獨(dú)成行,而列表的右括號(hào)與閉包的開始花括號(hào)必須放在同一行。 以下幾個(gè)例子,包含了參數(shù)和變量列表被分成多行的多情況。
注意,閉包被直接用作函數(shù)或方法調(diào)用的參數(shù)時(shí),以上規(guī)則仍然適用。
總結(jié) 以上規(guī)范難免有疏忽,其中包括但不僅限于: 全局變量和常量的定義 函數(shù)的定義 操作符和賦值 行內(nèi)對(duì)齊 注釋和文檔描述塊 類名的前綴及后綴 最佳實(shí)踐 本規(guī)范之后的修訂與擴(kuò)展將彌補(bǔ)以上不足。 附錄 A. 問卷調(diào)查為了編寫本規(guī)范,小組制定了調(diào)查問卷,用來統(tǒng)計(jì)各成員項(xiàng)目的共同規(guī)范。
indent_type: line_length_limit_soft: line_length_limit_hard: class_names: class_brace_line: constant_names: true_false_null: method_names: method_brace_line: control_brace_line: control_space_after: always_use_control_braces: else_elseif_line: case_break_indent_from_switch: function_space_after: closing_php_tag_required: line_endings: static_or_visibility_first: control_space_parens: blank_line_after_php: class_method_control_brace:
轉(zhuǎn)自Github(PizzaLiu) |

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Untuk mengendalikan muat naik fail dengan selamat di PHP, terasnya adalah untuk mengesahkan jenis fail, menamakan semula fail, dan menyekat kebenaran. 1. Gunakan finfo_file () untuk memeriksa jenis mime sebenar, dan hanya jenis tertentu seperti imej/jpeg dibenarkan; 2. Gunakan uniqid () untuk menghasilkan nama fail rawak dan simpannya dalam direktori akar bukan web; 3. Hadkan saiz fail melalui borang php.ini dan html, dan tetapkan kebenaran direktori ke 0755; 4. Gunakan Clamav untuk mengimbas malware untuk meningkatkan keselamatan. Langkah -langkah ini dengan berkesan menghalang kelemahan keselamatan dan memastikan bahawa proses muat naik fail adalah selamat dan boleh dipercayai.

Dalam PHP, perbezaan utama antara == dan == adalah ketat pemeriksaan jenis. == Penukaran jenis akan dilakukan sebelum perbandingan, contohnya, 5 == "5" pulangan benar, dan === meminta nilai dan jenis adalah sama sebelum benar akan dikembalikan, sebagai contoh, 5 === "5" mengembalikan palsu. Dalam senario penggunaan, === lebih selamat dan harus digunakan terlebih dahulu, dan == hanya digunakan apabila penukaran jenis diperlukan.

Ya, PHP boleh berinteraksi dengan pangkalan data NoSQL seperti MongoDB dan Redis melalui sambungan atau perpustakaan tertentu. Pertama, gunakan pemacu MongoDBPHP (dipasang melalui PECL atau komposer) untuk membuat contoh pelanggan dan mengendalikan pangkalan data dan koleksi, penyisipan sokongan, pertanyaan, pengagregatan dan operasi lain; Kedua, gunakan perpustakaan predis atau lanjutan phpredis untuk menyambung ke REDIS, lakukan tetapan dan pengambilalihan nilai utama, dan mengesyorkan PHPREDI untuk senario berprestasi tinggi, sementara Predis mudah untuk penempatan pesat; Kedua-duanya sesuai untuk persekitaran pengeluaran dan didokumentasikan dengan baik.

Kaedah menggunakan operasi matematik asas dalam PHP adalah seperti berikut: 1. Tanda tambahan menyokong bilangan bulat dan nombor terapung, dan juga boleh digunakan untuk pembolehubah. Nombor rentetan akan ditukar secara automatik tetapi tidak disyorkan kepada kebergantungan; 2. Tanda -tanda pengurangan - tanda, pembolehubah adalah sama, dan penukaran jenis juga terpakai; 3. Tanda -tanda pendaraban menggunakan tanda *, yang sesuai untuk nombor dan rentetan yang serupa; 4. Bahagian menggunakan / tanda, yang perlu mengelakkan pembahagian dengan sifar, dan perhatikan bahawa hasilnya mungkin nombor terapung; 5. Mengambil tanda modulus boleh digunakan untuk menilai angka ganjil dan bahkan, dan apabila memproses nombor negatif, tanda -tanda selebihnya selaras dengan dividen. Kunci untuk menggunakan pengendali ini dengan betul adalah untuk memastikan bahawa jenis data adalah jelas dan keadaan sempadan ditangani dengan baik.

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()
