PHP代碼編寫規(guī)范_第1頁
PHP代碼編寫規(guī)范_第2頁
PHP代碼編寫規(guī)范_第3頁
PHP代碼編寫規(guī)范_第4頁
PHP代碼編寫規(guī)范_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

7、不縮進(jìn)的,而其成員是縮進(jìn)的。描述類的文檔注釋的第一行(/*)不需縮進(jìn);隨后的文檔注釋每行都縮進(jìn)1格(使星號(hào)縱向?qū)R)。成員,包括構(gòu)造函數(shù)在內(nèi),其文檔注釋的第一行縮進(jìn)4格,隨后每行都縮進(jìn)5格。若你想給出有關(guān)類、變量或方法的信息,而這些信息又不適合寫在文檔中,則可使用實(shí)現(xiàn)塊注釋或緊跟在聲明后面的單行注釋。例如,有關(guān)一個(gè)類實(shí)現(xiàn)的細(xì)節(jié),應(yīng)放入緊跟在類聲明后面的實(shí)現(xiàn)塊注釋中,而不是放在文檔注釋中。文檔注釋不能放在一個(gè)方法或構(gòu)造器的定義塊中,因?yàn)槌绦驎?huì)將位于文檔注釋之后的第一個(gè)聲明與其相關(guān)聯(lián)。四、聲明本部分忽略五、語句1簡單的語句每行至多包含一條語句,例如:$argv+; / 正確的$argc-; / 正

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論