這篇文章帶給大家的內容是關於PHP編碼開發規範的介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
這幾天看了一下阿里技術發布的一套Java開發規範《阿里巴巴Java開發手冊》,裡面寫了阿里內部的Java開發規範標準,寫的很好。這套Java統一規範標準將有助於提升產業編碼規範化水平,幫助產業人員提高開發品質與效率、大幅降低程式碼維護成本。
看完我去搜下了一些PHP的一些開發規範標準,其中了解到了PSR規範是PHP產業中常用的一套開發標準。感嘆自己學得那麼少,標準的規範這麼晚才發現。
其實對於新手或有幾年經驗的開發者來說,這些規範我們都要掌握的,很多時候我們做好這些規範,在協同開發中,能提高我們的開發品質和效率。
什麼是PSR?
PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP 規範,是 PHP 開發的實務標準。
PHP FIG目前已投票通過了 6 個標準,並且已經獲得大部分 PHP 框架的支持與認可。
其中已經通過的有:
- PSR-1 基礎編碼規格
- PSR-2 編碼風格規格
- PSR-3 日誌介面規格
- PSR-4 自動載入規格
- PSR-6 快取介面規格
- PSR-7 HTTP 訊息介面規格
*註:其中PSR-0已被棄用,PSR-5還在起草中,以後再補充
這裡先介紹PSR-1 基礎編碼規格
1、概覽
PHP程式碼檔案 必須 以
PHP程式碼檔案 必須 以 不帶BOM 的UTF-8 編碼;
PHP程式碼中 應該 只定義類別、函數、常數等聲明,或其他會產生 副作用 的操作(如:產生檔案輸出以及修改.ini 設定檔等),二者只能選其一;
命名空間以及類別 必須 符合PSR 的自動載入規格: [PSR-4]() 中的一個;
類別的命名 必須 遵循 StudlyCaps 大寫開頭的駝峰命名規範;
#類別中的常數所有字母都 大寫,字間以底線分隔;
方法名稱 必須 符合 camelCase 式的小寫開頭駝峰命名規格。
2. 檔案
2.1. PHP標籤
PHP程式碼 必須 使用 長標籤或 = ?> 短輸出標籤;
#一定無法 使用其它自訂標籤。
2.2. 字元編碼
PHP代碼 必須 且只可使用 不帶BOM的UTF-8 編碼。 (這點很重要)
2.3. 副作用
一份PHP 文件中 應該 要不就只定義新的聲明,如類別、函數或常數等不產生 副作用 的操作,要不就只書寫會產生 副作用 的邏輯操作,但 則不該 同時具有兩者。
「副作用」(side effects) 一詞的意思是,僅僅透過包含文件,不直接聲明類別、函數和常數等,而執行的邏輯操作。
「副作用」包含卻不限於:
- 產生輸出
- 直接的 require 或 include
- #連線外部服務
- 修改ini 設定
- #拋出錯誤或例外
- 修改全域或靜態變數
- 讀取或寫入檔案等
#以下是一個 反例,一份包含「函數宣告」以及產生「副作用」的程式碼:
<?php // 「副作用」:修改 ini 配置 ini_set('error_reporting', E_ALL); // 「副作用」:引入文件 include "file.php"; // 「副作用」:生成输出 echo "<html>\n"; // 声明函数 function foo() { // 函数主体部分 }
下面是一個範例,一份只包含宣告不產生「副作用」的程式碼:
<?php // 声明函数 function foo() { // 函数主体部分 } // 条件声明 **不** 属于「副作用」 if (! function_exists('bar')) { function bar() { // 函数主体部分 } }
3. 命名空間與類別
命名空間以及類別的命名必須遵循[PSR-4]()。
根據規範,每個類別都獨立為一個文件,且命名空間至少有一個層次:頂級的組織名稱(vendor name)。
類別的命名 必須 遵循 StudlyCaps 大寫開頭的駝峰命名規格。
PHP 5.3 及以後版本的程式碼 必須 使用正式的命名空間。
例如:
<?php // PHP 5.3及以后版本的写法 namespace Vendor\Model; class Foo { }
5.2.x 及之前的版本 应该 使用伪命名空间的写法,约定俗成使用顶级的组织名称(vendor name)如 Vendor_ 为类前缀。
<?php // 5.2.x及之前版本的写法 class Vendor_Model_Foo { }
4. 类的常量、属性和方法
此处的「类」指代所有的类、接口以及可复用代码块(traits)。
4.1. 常量
类的常量中所有字母都 必须 大写,词间以下划线分隔。
参照以下代码:
<?php namespace Vendor\Model; class Foo { const VERSION = '1.0'; const DATE_APPROVED = '2012-06-01'; }
4.2. 属性
类的属性命名 可以 遵循:
- 大写开头的驼峰式 ($StudlyCaps)
- 小写开头的驼峰式 ($camelCase)
- 下划线分隔式 ($under_score)
本规范不做强制要求,但无论遵循哪种命名方式,都 应该 在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。
4.3. 方法
方法名称 必须 符合 camelCase() 式的小写开头驼峰命名规范。
【相关推荐:PHP视频教程】
以上是PHP編碼開發規範的介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中