兄弟連php就業(yè)83期學(xué)員項(xiàng)目新四軍食客約訂餐平臺_第1頁
兄弟連php就業(yè)83期學(xué)員項(xiàng)目新四軍食客約訂餐平臺_第2頁
兄弟連php就業(yè)83期學(xué)員項(xiàng)目新四軍食客約訂餐平臺_第3頁
兄弟連php就業(yè)83期學(xué)員項(xiàng)目新四軍食客約訂餐平臺_第4頁
兄弟連php就業(yè)83期學(xué)員項(xiàng)目新四軍食客約訂餐平臺_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

編碼規(guī) 作、、、 A1.1適用范PHP項(xiàng)目,意在幫助新手在編程風(fēng)格上養(yǎng)成良好的習(xí)慣,也可以作為部分軟件公司中A1.2目編碼標(biāo)準(zhǔn)能幫助確保代碼的質(zhì)量、減少Bug和容易。目標(biāo)如下:PHPA1.3開發(fā)工PHPZendStudioUltraEditEditPlusPHPEdit、Eclipse、Dreamweavervim等,每種開發(fā)工具都有其各自的優(yōu)勢。在編寫程序時(shí),一款TAB(8個(gè)空白字符寬度)設(shè)定,80字符以內(nèi)是比較合適,但最多一行也不要超過120個(gè)字符中則是“\nUnix/Linux文本文件的約定,使用“\nWindowsA2PHP的文件格A2.1PHP開始和結(jié)束標(biāo)當(dāng)中帶有PHP代碼,可以使用<?php?><??>或<%%>等標(biāo)記來界定PHP代碼,HTML頁面中嵌入純變量時(shí),還可以使用<?=$variablename這樣的形式。為了防止短標(biāo)記<??>和ASP風(fēng)格的<%%>與一些技術(shù)發(fā)生,有時(shí)需要在PHP配置文件中將其關(guān)閉,因而導(dǎo)致這樣的標(biāo)記不總是可用。所以在編寫PHP時(shí)不允許使用短標(biāo)記,所有全部使用完整的、標(biāo)準(zhǔn)的、PHP定界<?php?>作為PHP開始和結(jié)束標(biāo)記。PHP代碼的文件,結(jié)束標(biāo)志("?>")是不允許存在的,PHP("?>"A2.2注釋規(guī)注釋是對于那些容易忘記作用的代碼添加簡短的介紹性內(nèi)容,可以在PHP中使用*/注釋符號“//。所有文檔塊建議和phpor格式兼容。PHPor是一個(gè)用PHPphp程序,它能夠快速生成具有相互參照,API式,非常的方便。PHP是從你的源代碼的注釋中生成文檔,因此在給你的程序做和文檔的更新不同步的一些問題。在PHPor中,注釋分為文注釋和非文注釋。所謂文注釋,是那些放在特定關(guān)鍵字前面的多行注釋,特定關(guān)鍵字是指能夠被PHPor分析的關(guān)鍵字,例如class,var等。那些沒有在關(guān)鍵字前面或者不規(guī)范的注釋就稱作非文注釋,這些注釋將不會被PHPor所分析,也不會出現(xiàn)在你產(chǎn)api文檔中。A2.21文件頂部的注每個(gè)類必須有一個(gè)符合PHPor標(biāo)準(zhǔn)的文檔塊至少包含這些php:*類的詳細(xì)描*類的詳細(xì)描作時(shí)功A2.2.3方法和函數(shù)的注函數(shù)的描述所有參數(shù)如果函數(shù)拋出一個(gè)異常使用@throws于所有已知的異常類對于了全局變量的函數(shù),必須使用glboal標(biāo)記,函數(shù)必須通過param和return標(biāo)記指明其參數(shù)和返回值,調(diào)用了其他函數(shù)或類的地方,要使用link或其他標(biāo)記到相應(yīng)的部分,便于文檔的閱讀。Asamplefunction**@returnfunctionfirstFunc($param1,$param2='optional'){static$staticvar=7;global$_myvar;return$staticvar;}A2.2.4變量、常量和成員屬性的注(int,strng,bool...Specialglobalvariabledeclaration@globalinteger@name$GLOBALS['_myvar']=firstdefine('testing',A2.2.5臨時(shí)性代碼注$flag$flag //debug這里不能確定是否需要賦A2.3空行和空一般來說,空白符(包括空格、Tab制表符、換行)PHPPHP引白的帶有TAB或空格的行,即:這類空白行應(yīng)當(dāng)不包含任何TAB或空格。同時(shí),任何程序A2.3.1空行的使用時(shí)兩個(gè)函數(shù)之間A2.3.2空格的使用時(shí)forHTML$num=$int=$num=$int=$sum=(($num+1)*6/2+$page=isset($_GET[“page”])?$_GET[“page”]:functionmyFun($arg1,$arg2,$arg3)//statementsmore}A2.4字符串的使PHP中單引號和雙引號具有不同的含義,最大的幾項(xiàng)區(qū)別如下:單引號中,任何變量($var)、特殊轉(zhuǎn)義字符(如“\t\r\n”等)都不會被解析,因此PHP字符,還有一些專門針對上述兩項(xiàng)特性的特殊功能性轉(zhuǎn)義,例如“\$”和“{$array[‘key’]}PHP的解析也很慢;A2.4.2使用單引號字符,絕大多數(shù)可以使用單引號的場合使用雙引號。依據(jù)上述分析,可以或必須使用單引號:,$html=$html=’<inputtype=”text”name=”username”value=”admin”$var$var=作為下標(biāo)帶入表達(dá)式中,同時(shí)出發(fā)錯(cuò)誤,產(chǎn)生一條Notice級錯(cuò)誤。UPDATEusersSETname=’admin’,age=’22’,height=’178.5’UPDATEusersSETname=’admin’,age=’22’,height=’178.5’whereA2.4.2使用雙引號字符$var=$var= o$sql=“SELECT$sql=“SELECT*FROM`table`WHEREid=’{$id[]在正則表達(dá)式(preg_ereg系列函數(shù))中,建議全部使用雙引號,這注意:所有數(shù)據(jù)在插入數(shù)據(jù)庫之前,均需要進(jìn)行addslashes()處理,以免特殊字符 A2.5命名原就一般約定而言,文件、、類、函數(shù)、變量和常量的名字,應(yīng)該讓代碼閱讀者能夠A2.5.1文件所有包含PHP代碼的程序文件或半程序文件,應(yīng)以.php作為擴(kuò)展名,而不要使login.php、 普通程URLlogin.php、 普通程 文件 一個(gè)Product的 文件 一個(gè)Product的 文件 一些通用的函 文件 一些通用的函config 文件 一些項(xiàng)目的配置內(nèi)config 文件 一些項(xiàng)目的配置內(nèi) 命命名也一定要有描述性的意義,在可能的情況下,多以復(fù)數(shù)形式出現(xiàn),如./temtes、./images等。由于 另外,要在所有不包含普通程序(URL直接調(diào)用的程序)的中放置一個(gè)1index.htm文件,內(nèi)容為一個(gè)空格。幾乎除根以外,所有都屬于這一類型,因此開發(fā)者需要在這些全部放入空index.htmhttpDirectoryOptionsIndexes打開時(shí),服務(wù)器文件被索引和列表。A2.5.3類類名應(yīng)有描述性,杜絕一切拼音、或拼音英文混雜名方例如例如AaaBbbCcc(如果類名由aaa,bbbccc三個(gè)單詞組成的UserInfouserInfo函數(shù)名應(yīng)具有描述性,杜絕一切拼音、或拼音英文混雜名方例如例如aaaBbbCcc(aaabbbccc三個(gè)單詞組成的function//}gefunction//}Privatefunction//}Privatefunction//}A2.5.5變量變量也應(yīng)具有描述性,杜絕一切拼音、或拼音英文混雜名方中有據(jù)可查的英文縮寫方式,盡可能要使用一目了然容易理解的形式;例如例如$aaa_bbb_ccc(如果變量名由aaa,bbbccc三個(gè)單詞組成的$bo($biogrphy)$tp($hreds_pr_pge),必須清楚所使用英文單詞的詞性,在權(quán)限相關(guān)的范圍內(nèi),大多使用$allow***例如:例如:$allowInsert,$isIntA2.5.6常量常量名應(yīng)具有描述性,杜絕一切拼音、或拼音英文混雜名方define(‘AAA_BBB_CCCtrue’aaa,bbb,ccc三個(gè)單詞組成PHPTRUE、FALSENULLA2.6語言結(jié)A2.6.1if/else/elseif后只有一行語句,仍然需要加入大括號,以保證結(jié)構(gòu)清晰;首括號與,尾括號與關(guān)鍵字同列if中條件語句的圓括號前后必須有一個(gè)空格括號內(nèi)的條件語句中操作符必須用空格分開elseifelseif的寫法ifif($one==‘1’)}elseif($one==‘2’)}$one$one=$two==1||$two==2&&$three>//$one(($two1)||($two2&&$three3));//正確true1A2.6.2switchswitch中的代碼使用縮進(jìn),caseswitch體中,break的位置格式應(yīng)當(dāng)保持一致。switchdefaultswitch($var)case1: echo‘varswitch($var)case1: echo‘varis1’;break;case echo‘varis2’; echo‘varisneither1or2’;}switch($str)case$result=‘a(chǎn)bc’;$result=‘unknown’;}A2.6.30array(‘one_value’,array(‘one_value’,如果使用key/value的形式進(jìn)行關(guān)聯(lián)數(shù)組的話,鼓勵(lì)把數(shù)組分成多行,提高可A2.6.4每個(gè)類必須有一個(gè)符合PHPor標(biāo)準(zhǔn)的文檔塊PHP文件中只有一個(gè)類,.class.php*ationBlockclassSampleClass//類的所有內(nèi)}A2.6.5類中成員屬性和變量任何變量在進(jìn)行累加、直接顯示或前必需進(jìn)行初使化。因?yàn)镻HP中的變量不并不像強(qiáng)類型語言那樣需要事先,而PHP解釋器會在第一次使用時(shí)自動(dòng)創(chuàng)建$number$number=$string=$array=////字符串初始//數(shù)組初始判斷一個(gè)無法確定(不知道是否已被賦值)empty()或isset(),而不要直接使用if($switch)i_aray(foreah()foreah()錯(cuò);A2.6.6函數(shù)的定義與使函數(shù)時(shí)參數(shù)的名字和變量名規(guī)范一致函數(shù)不管在調(diào)用還是在的時(shí)候,參數(shù)與參數(shù)之間都要加入一個(gè)空格functionfunctionauthcode($string,$operation,$key='')//函數(shù)}A2.7其它規(guī)范細(xì)A2.7.1代碼重用和包含調(diào)require和include兩個(gè)系統(tǒng)指令,require在PHP程序的最前面。PHP程序在執(zhí)行前,就會先讀入require語句所引入的文件,使它變成PHP文件的一部分。include語句的使用方法和require語句一樣,而這個(gè)語句一般是放在流程控制的處理區(qū)段中。PHP文件在讀到includerequirerequire//require語句包含并執(zhí)行config.phpif($condition)include//在流程控制中使用include//使用includefile.txt}}elseinclude}//使用include語句包含并執(zhí)行other.phprequireerror_reporting(E_ALL),作為默認(rèn)的A3MySQL設(shè)計(jì)規(guī)A3.1數(shù)據(jù)表的設(shè)A3.1.1數(shù)據(jù)庫表表名應(yīng)具有描述性,杜絕一切拼音、或拼音英文混雜名方式表詞一律小寫,單詞之間使用下劃線連接表名長度過64個(gè)字符MySQL的保留字(A3.1.2數(shù)據(jù)表字段字段名應(yīng)具有描述性,杜絕一切拼音、或拼音英文混雜名方字段名長度過64個(gè)字符xs_orders表uid與xs_cartsuid,xs_usersid。每個(gè)表建議都要有一id自增量的字段,可以使用全稱的形式,也可只將其命名id。text/blob索引長度過64個(gè)字符A3.1.4字段結(jié)進(jìn)行表結(jié)構(gòu)設(shè)計(jì)時(shí),應(yīng)當(dāng)做到恰到好處,反復(fù)推敲,從而實(shí)現(xiàn)最優(yōu)的數(shù)據(jù)體系NULL值的字段,數(shù)據(jù)庫在進(jìn)行比較操作時(shí),會先判斷其是否為NULL,非NULL時(shí)才進(jìn)行值的比對因此基于效率的考慮所有字段均不能為空即全部使用NOTNULL的屬性修飾字段;如果不會使用非負(fù)數(shù)的字段(如各項(xiàng)id數(shù)等必須設(shè)置為類型,能獲得范圍大一倍數(shù)值空間enumvarchar、text等變長字段的數(shù)據(jù)表,即為變長表,反之則為定長表。在設(shè)記錄值的長度而一個(gè)LONGTEXT則用4字節(jié)記錄其值的長度如果的值長度不會超過64KB,使用TEXT將使每個(gè)值節(jié)省2字節(jié)。A3.2索引設(shè)計(jì)原值不重復(fù)的情況下,PRIMARYKEYUNIQUEINDEX更快,要酌情使用。架構(gòu)和效率的影響最小。根據(jù)產(chǎn)品的實(shí)際運(yùn)行和被情況,找出哪些SQL語句是最常被SQL語句,又SQL語句執(zhí)行的概率、表的大小和寫操作的頻繁程度。A3.3SQL語句設(shè)select*fromselect*fromxs_users;是不符合規(guī)范的例如:SELECT FROM字段列表不要使用“例如:SELECT FROM例如例如:INSERTINTOusers(name, $query=$db->query("SELECT$query=$db->query("SELECTs.*,FROM{$tablepre}sessionss,{$tablepre}usersuWHEREu.uid=s.uidANDs.sid='$sid');A4模板所有模板文件建議使用小寫.htmlHTMLHTML標(biāo)記參數(shù)賦值需使用雙引號包含,例如,應(yīng)當(dāng)使用<inputtype=”text”name=”username”value=”admin而絕對不能使用<inputtype=textname=usernamevalue=adminHTML代碼的方式,而絕對不能DreamWeaver、FrontPage等自動(dòng)

溫馨提示

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

評論

0/150

提交評論