程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP書寫規范(1)

PHP書寫規范(1)

編輯:關於PHP編程

PHP書寫規范

作者:sink

最後修改:2011-7-7

參考資料:

PHP Manual

http://www.php.net/manual/zh/language.oop5.basic.php

PEAR Coding Standards

http://pear.php.net/manual/en/standards.php

C++ Coding Standard

http://www.possibility.com/Cpp/CppCodingStandard.html

Google C++ Style Guide

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

Code Conventions for the Java

http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

通用原則:

1、語義化

看到名字,就知道意思。

2、通用前綴

is表示是否、get表示讀、set表示寫。is後面優先跟形容詞,而不是名詞,比如是否多語言文字,應使用is_multilingual,而不是is_multilanguage。

3、單數與復數

參考js的函數命名規則:getElementById、getElementsByTagName、getElementsByName。

例如:

取我的多個好友的名字,應使用getFriendsName,而不是getFriendNames或者getFriendName

取一個用戶,是getUser

取多個用戶,是getUsers

4、冗余後綴

盡量不使用data、list、info後綴。

比如,js的命名就很注意,使用getElementsByTagName而不是getElementsInfoByTagName。

應該使用getFriends或者getFriendsUserId,而不是getFriendsList;應該使用getUser,而不使用getUserInfo或者getUserData。

不過有時候很難避免,比如有2個函數,分別是取用戶基本信息,和取用戶詳細信息。

取用戶基本信息:昵稱、頭像URI,函數名getUserBasic還是getUserBasicInfo?函數名以形容詞結尾感覺不合適,待討論。

取用戶詳細信息:昵稱、頭像URI、簽名、生日,函數名getUser沒問題。

5、含義模糊的類名、文件名、目錄名

每當使用common、util、functions、class、object、basic作為文件名時要慎重,由於這些詞太通用,發展下去裡面東西可 能越來越多,變成垃圾箱。要給這些起一個准確的名字,比如要做字符串處理的類,可以叫StringLib.php,放在lib目錄裡。

6、lib、plugin與addon的區別

有些類、函數算做lib、plugin還是addon。待討論。

類名:

大寫字母開頭,駝峰命名。一般使用名詞,比如配置解析類ConfigParser,而不是ParseConfig。

與Java、C++一致。

例如:class UserModel

類的文件名:

與類名相同。這與php autoload有關,為了autoload,類名總要很長,待討論。

與Java一致。

例如:class UserModel的文件名為UserModel.php

非類文件名:

全小寫,下劃線分隔,不得使用空格。比如get_user.php。

目錄名:

全小寫,下劃線分隔,不得使用空格。比如model、www。

函數名:

小寫字母開頭,駝峰命名,例如:function addBlog()。

與Java、C++一致。

函數表示功能,即動作,所以動詞優先,例如使用editBlog,而不用blogEdit。

PHP內置函數由於歷史原因,有多種風格,do_something,something_do,dosomething,比較新的函數用了doSomething,才與目前主流語言保持一致。

比如:paser_str、json_encode、substr、fetchAll。

歷史原因可能無法改變,但我們能保證新的代碼是嚴謹的,不要讓自己成為歷史原因。

類中的函數:

兩個函數中間空一行。如果有時間的話,各個函數按英文字母排序,免得太混亂。

例如:

  1. class BlogModel  
  2. {  
  3.    public function addBlog()  
  4.     {  
  5.     }    
  6.     public function updateBlog()  
  7.     {  
  8.     }  

文件注釋:

注釋緊跟<?php下一行。注明作者。@version暫不需要寫,因為svn提供了版本管理。

格式按照PHPdoc的要求:

http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_tags.author.pkg.html

  1. <?php  
  2. /**  
  3.  * blog的各種業務:添加、更新  
  4.  * @author sink  
  5.  *  
  6.  */ 
  7. class BlogModel  
  8. {  
  9.  
  10. }  
  11. ?> 

API注釋:

一定要寫輸入參數,和輸出格式。寫清楚正確時輸出什麼,錯誤時輸出什麼。

否則別人無法使用。

1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved