PHP編碼規范
為了提高工作效率,保證開發的有效性和合理性,并最大程度提高程序代碼的可讀性和可重復利用性,提高溝通效率,需呀一份代碼編輯規范。
一、文件標記:
1.所有php文件,其代碼標記均采用完整php標簽,不建議使用短標簽(短標簽容易和xml混淆,php從5.4開始默認不支持短標記)。
2.對于只有php的代碼文件,建議省略結尾處的‘?>’。這是為了防止多余的空格或其他字符影 響到代碼。
二、文件和目錄命名
1.程序文件名和目錄名均采用有意義的英文命名,不使用拼音和無意義的字母,只允許出現字母、數字、下劃線和中劃線字 符,同時必須以‘.php’結尾(模板文件除外),多個詞間使用駝峰命名法。
例://類統一采用:DemoTest.class.php
//接口統一采用:DemoTest.interface.php
//其他按照各自的方式:demoTest.{style}.php
三、文件目錄結構
-
規范的目錄結構有助于團隊協作開發和后期維護。
——app //獨立的應用
——class //單個的類文件,共用的類文件
——conf/inc //配置文件或目錄
——data //數據文件或目錄
——doc //程序相關文檔
——htdocs //document_root
——images //所有圖片文件存放路徑
——css //css文件
——js //js文件
——lib //共用類庫
——template //模板文件
——tmp //臨時文件目錄
</li>-
——cache //緩存文件
</li> -
——session //SESSION文件
</li> -
——template_c //編譯后的模板文件
</li> -
——other
</li> </ol>——upload //上傳文件
——manage //后臺管理文件目錄
</ol>四、命名規范
1.變量命名:php中變量區分大小寫,一個有效的變量名由數字、字母或下劃線開頭,后面跟任意數量的字母、數字、下劃線。
a)程序整體以駝峰命名法,以小寫字母開始,同時命名要有意義。(function displayName())
b)PHP全局變量鍵值兩邊都有‘_’,中間用駝峰命名法命名。($_GLOBAL['_beginTime_'])
c)普通變量整體采用駝峰命名法,建議在變量前加表示類型的前綴。不確定類型的以大寫字符開頭。
d)函數名要盡量有意義,盡量縮寫。
2.類及接口命名:
a)以大寫字母開頭。
b)多個單詞組成的變量名,單詞之間不用間隔,各個單詞首字母大寫。
c)類名與類文件名保持一致。
d)程序中所有的類名唯一。
e)抽象類應以Abstract開頭。
接口命名規則:
i)采用和類相同的命名規則,但在其命名前加‘i’字符,表示接口。
ii)盡量保持和實現它的類名一致。
3.數據庫命名:在數據庫相關命名中,一律不出現大寫。
a)表名均使用小寫字母。
b)表名使用同一的前綴且前綴不能為空。
c)對于多個單詞組成的表名,使用‘_’間隔。
d)表字段命名規則。
i)全部使用小寫字母。
ii)多個單詞不用下劃線分割。
iii)給常用字段加上表名首字母做前綴。
iv)避免使用關鍵字和保留字。
五、注釋規范
1.程序注釋:寫在代碼前面而不是后面,單行代碼按照習慣寫在代碼尾部;大段注釋采用/**/的方式,通常為文件或函數的頂部,代碼內部使用'//';注釋不宜太多;代碼注釋應該描述為什么而不是做什么,給代碼閱讀者提供最主要的信息。
2.文件注釋:文件注釋一般放在文件的頂部,包括本程序的描述、作者、項目名稱、文件名稱、時間日期、版本信息、重要的使用說明(類的調用,注意事項等)。版本更改要修改版本號,并加上mofify注釋。
3.類和接口注釋:按照一般的習慣,一個文件只包含一個類。
4.方法和函數注釋:方法和函數的注釋寫在前面,通常需要表明信息的主要可見性、參數類型和返回值類型。
/**
* 連接數據庫
* @param string $dbhost 數據庫服務器地址
* @param string $dbuser 數據庫用戶名
* @param string $dbpwd 數據庫密碼
*/
六、代碼風格
1.縮進和空格:使用4個空格做為縮進,不使用Tab鍵;變量賦值時,等號兩邊留出空格。($url = '$_GET['url']';)
2.語句斷行:盡量保證程序語句一行即一句;盡量不要使一行的代碼過長,80個字符以內;如果一行的代碼太長,請使用類似于‘.=’方式斷行連接;執行數據庫的sql語句操作時,盡量不要再函數內寫sql語句,而先用變量定義sql語句,然后在執行操作的函數中調用定義的變量。
3.更好的習慣:在代碼中使用下面列舉的方法,可以使代碼更優雅。
1):多使用php中已經存在的常量,而不要自己定義。
例://換行
echo $msg."\r\n";
echo $msg,PHP_EOL;
php中PHP_EOL是一個預定義常量,表示一行結束,隨著所使用系統不同,使用PHP_EOL代碼可移植性更高
2):在echo中使用逗號做連接符,比用‘.’做連接符代碼更美觀。
3):單引號的效率高于雙引號,但二者在使用上有區別,學會使用printf函數。
例://echo
echo '每個'.$scholl.'大約有'.floor($avg).'個學生';
//printf
$format = '每個%s大于有$d個學生';
printf($format,$school,$avg);
4) :詳細的注釋
5):不要 濫用語法糖,語法糖就是語言中的潛規則,即不具備普遍代表性的語法。
-