PHP代碼編寫規范_第1頁
PHP代碼編寫規范_第2頁
PHP代碼編寫規范_第3頁
PHP代碼編寫規范_第4頁
PHP代碼編寫規范_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 重慶名爵科技有限公司 PHP代碼編寫規范編寫:技術部日期:2008-2-22 重慶名爵科技有限公司 目錄一、文件結構1二、文件名11文件夾命名12文件命名1三、注釋11塊注釋12單行注釋23尾端注釋24行末注釋25文檔注釋3四、聲明3五、語句31簡單的語句32復合語句43返回語句44If與else語句45For語句56While語句57Do while語句58Switch語句59Trycatch語句6六、空白71空行72空格7七、命名規范81數據庫82類83函數104變量115Css11八、編程慣例111常量112賦值113圓括號124大括號125返回值136三目運算符?:13·

2、1 · 重慶名爵科技有限公司 一、文件夾結構CMS |_codes代碼文件夾 | |_admin后臺功能文件夾 | | |_class后臺類文件夾 | | |_common后臺通用功能文件夾 | | |_css后臺css文件夾 | | |_images后臺界面圖片文件夾 | | |_js后臺js文件夾 | | |_upload后臺上傳文件保存文件夾 | | | |_api前臺接口文件夾 | |_channel0某頻道文件夾 | | |_html某頻道HTML文件夾 | | | |_1某靜態頁面文件夾 | | |_js某頻道JS文件夾 | | |_upload某頻道上傳文件文件夾 |

3、| | |_class前臺類文件夾 | |_common前臺通用功能文件夾 | |_global系統全局配置或功能文件夾 | |_templates系統全局配置或功能文件夾 | |_skin0前臺模板文件夾 | |_css系統全局配置或功能文件夾 | |_images系統全局配置或功能文件夾 | |_cut切片文件夾 |_development開發文稿文件夾 |_resource資料文件夾 |_tools系統開發輔助工具文件夾 |_ui用戶界面設計文件夾 |_readme.txt描述文件夾結構二、文件名1文件夾命名文件夾命名一般采用英文,長度一般不超過20個字符,命名采用小寫字母,一些常見的文

4、件夾命名如:images(存放圖形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放JavaScript腳本),inc(存放include文件),link(存放友情鏈接),media(存放多媒體文件)等。文件名稱統一用小寫的英文字母、數字和下劃線的組合。2文件命名類文件:類文件由類的前綴 cls + _ + 具體文件名 + 后綴組成,如產品類文件 cls_product.php。函數文件:函數文件由函數前綴 fun + _ + 具體文件名 + 后綴組成,如產品函數文件fun_product.php。三、注釋1塊注釋塊注釋通常用于提供對文件,方法,數據結

5、構和算法的描述。塊注釋被置于每個文件的開始處以及每個方法之前。它們也可以被用于其他地方,比如方法內部。在功能和方法內部的塊注釋應該和它們所描述的代碼具有一樣的縮進格式。比如:/*這里是塊注釋*/2單行注釋短注釋可以顯示在一行內,并與其后的代碼具有一樣的縮進層級。如果一個注釋不能在一行內寫完,就該采用塊注釋。單行注釋之前應該有一個空行。以下是一個代碼中單行注釋的例子:if (condition)/以下代碼運行的條件.3尾端注釋極短的注釋可以與它們所要描述的代碼位于同一行,但是應該有足夠的空白來分開代碼和注釋。若有多個短注釋出現于大段代碼中,它們應該具有相同的縮進。以下是一個代碼中尾端注釋的例子:

6、if ($a = 2)return TRUE; /對單一條件的說明elsereturn isPrime($a); /其余的條件 4文檔注釋文檔注釋描述php的類、構造器,方法,以及字段(field)。每個文檔注釋都會被置于注釋定界符/*.*/之中,一個注釋對應一個類或成員。該注釋應位于聲明之前:/* * 軟件名稱:CMS * 軟件版本:v2.0 * 文 件 名:demo.php * 文件版本:1.0 * 作 者:Jack * 創建日期:2008-03-05 * 修改日期:2008-03-05 * 描 述:代碼編寫格式演示 */ class Example .注意頂層(top-level)的類是

7、不縮進的,而其成員是縮進的。描述類的文檔注釋的第一行(/*)不需縮進;隨后的文檔注釋每行都縮進1格(使星號縱向對齊)。成員,包括構造函數在內,其文檔注釋的第一行縮進4格,隨后每行都縮進5格。若你想給出有關類、變量或方法的信息,而這些信息又不適合寫在文檔中,則可使用實現塊注釋或緊跟在聲明后面的單行注釋。例如,有關一個類實現的細節,應放入緊跟在類聲明后面的實現塊注釋中,而不是放在文檔注釋中。文檔注釋不能放在一個方法或構造器的定義塊中,因為程序會將位于文檔注釋之后的第一個聲明與其相關聯。四、聲明本部分忽略五、語句1簡單的語句每行至多包含一條語句,例如:$argv+; / 正確的$argc-; / 正

8、確的$argv+; $argc-; / 錯誤的2復合語句復合語句是包含在大括號中的語句序列,形如" 語句 "。例如下面各段。被括其中的語句應該較之復合語句縮進一個層次左大括號""應位于復合語句起始行尾另起一行并與復合語句首行對齊;右大括號""應另起一行并與復合語句首行對齊。大括號可以被用于所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結構的一部分。這樣便于添加語句而無需擔心由于忘了加括號而引入bug。3返回語句一個帶返回值的return語句不使用小括號"()",除非它們以某種方式使返回值更為顯

9、見。例如:² return;² return myDisk.size();² return ($size ? $size : $defaultSize);4If與else語句if-else語句應該具有如下格式:if (condition) /進行操作的條件statements;if (condition) /進行操作的條件.statements; else /進行操作的條件statements;if (condition) /進行操作的條件statements;else if (condition) /進行操作的條件 statements;else /進行操作的條

10、件statements;注意:if語句總是用""和""括起來,避免使用如下容易引起錯誤的格式:if (condition) /避免這種寫法,他忽略了“”statement;5For語句一個for語句應該具有如下格式:for (initialization; condition; update)statements;6While語句一個while語句應該具有如下格式:while (condition)statements;7Do while語句一個do-while語句應該具有如下格式:do statements; while (condition);8Sw

11、itch語句一個switch語句應該具有如下格式:switch (condition) case ABC: / falls through statements;case DEF:statements;break;case XYZ:statements;break;default:statements;break;9Trycatch語句一個try-catch語句應該具有如下格式:try statements;catch (ExceptionClass e) statements;一個try-catch語句后面也可能跟著一個finally語句,不論try代碼塊是否順利執行完,它都會被執行。try

12、 statements;catch (ExceptionClass e)statements;Finallystatements;六、空白1空行空行將邏輯相關的代碼段分隔開,以提高可讀性。下列情況應該總是使用兩個空行:² 一個源文件的兩個片段(section)之間。² 類聲明之間。 下列情況應該總是使用一個空行:² 兩個方法之間。² 方法內的局部變量和方法的第一條語句之間。² 塊注釋或單行注釋之前。² 一個方法內的兩個邏輯段之間,用以提高可讀性。2空格下列情況應該使用空格:² 一個緊跟著括號的關鍵字應該被空格分開,例如:wh

13、ile ( true ) .注意:空格不應該置于方法名與其左括號之間。這將有助于區分關鍵字和方法調用。² 空格應該位于參數列表中逗號的后面所有的二元運算符,除了".",應該使用空格將之與操作數分開。一元操作符和操作數之間不因該加空格,比如:負號("-")、自增("+")和自減("-")。例如: $a += $c + $d;$a = ( $a + $b ) / ( $c * $d );while ( $d+ = $s+ ) $n+;printSize( "size is " + $foo

14、 + "n" );² for語句中的表達式應該被空格分開,例如: for (expr1; expr2; expr3)² 強制轉型后應該跟一個空格,例如: myMethod( (byte) $aNum, (int) $x );myMethod( (int) ($cp + 5 ), ( (int) ($i + 3) + 1 );七、命名規范1數據庫數據庫命名規范參見數據庫設計及命名規范2類a、類的組成Class 類名(盡量描述實體的內容,由單詞或單詞組合)/*類 名: tb_User_Info作 者: Jack基 類:創建日期: 2008-02-27修改日期

15、: 2008-02-27 版 本: 1.0 描 述: 保存用戶資料*/public function _construct()public function _destruct()public $變量名; /作用private $變量名; /作用public Function 函數名(形參) /*參數說明:功能:返回值:備注:*/private Function 函數名(形參) /*參數說明:功能:返回值:備注:*/ protected Function 函數名(形參) /*參數說明:功能:返回值:備注:*/3函數方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母

16、大寫。function run();function runFast();function getBackground();通常每個方法都是執行一個動作的,所以對它的命名應該清楚的說明它是做什么的:用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。這么做也可以使功能和數據成為更可區分的物體。有時后綴名是有用的: Max - 含義為某實體所能賦予的最大值。Cnt - 一個運行中的計數變量的當前值。Key - 鍵值。例如:retryMax 表示最多重試次數,retryCnt 表示當前重試次數。 有時前綴名是有用的: is -

17、 含義為問一個關于某樣事物的問題。無論何時,當人們看到Is就會知道這是一個問題。 get - 含義為取得一個數值。set - 含義為設定一個數值例如:isHitRetryLimit4變量² 變量命名采用匈牙利命名法² 匈牙利命名法是一種編程時的命名規范?;驹瓌t是:變量名屬性類型對象描述,其中每一對象的名稱都要求有明確含義,可以取對象名字全稱或名字的一部分。命名要基于容易記憶容易理解的原則。保證名字的連貫性是非常重要的。a Array 數組號 aImage b BOOL (int) 布爾(整數) bDbstate o Object 對象 oDatabase f float

18、浮點型 fMoney g_ global 全局的 g_sUserName i Integer 整數 iOld s String 字符串 sContents5Css規范Css命名規范參見css命名規范及細則。八、編程慣例1常量位于for循環中作為計數器值的數字常量,除了-1,0和1之外,不應被直接寫入代碼。2賦值² 避免在一個語句中給多個變量賦相同的值。它很難讀懂。例如:$fooBar.fChar = $barFoo.lchar = 'c' / 錯誤² 不要將賦值運算符用在容易與相等關系運算符混淆的地方。例如:if ($c+ = $d+) / 錯誤 .應該寫成if ($c+ = $d+) != 0).² 不要使用內嵌(embedded)賦值運算符試圖提高運行時的效率,這是編譯器的工作。例如:$d = ($a = $b + $c) + $r; / 錯誤應該寫成$a = $b + $c;$d = $a + $r;3圓括號一般而言,在含有多種運算符的表達式中使用圓括號來避免運算符優先級問題,是個好方法。即使運算符的優先級對你而言可能很清楚,但對其他人未必如此。你不能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論