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

ZendFramework,php編碼規范

編輯:PHP綜合

本文內容總結自zend framework(zf)手冊中文版(不完全漢化)

轉載本文請注明
@author 馬永占(MyZ)
@blog http://blog.csdn.Net/mayongzhan/
@year 2008 記得以前寫過一個php編碼規范的文章,這裡的格式是zf的規范,大部分可以應用於非zf項目的PHP。
說實話在程序正確的情況下,我有部分沒有遵守。 PHP文件格式 1.?>
?>這個如果是結尾,在PHP中不是必須寫的。不寫的目的是為了防止出現?>之後出現空格造成文件有輸出。有輸出也許就會出現session already send之類的錯誤。盡量讓?>後面沒有輸出,有了zf,代碼和頁面混合編碼已經是上上上個世紀的事情了,所以你的程序要是有了?>後面出現別的,那看來還要繼續啃手冊了,啃啃vIEw和controller做為預習。 2.縮進
4個空格,這個已經成為軟件業標准了。 3.行最大長度
建議是每行最多是80個字符,最多不超過120個。出屏幕了還需要拉橫向滾動條,所以盡量多加換行。習慣問題,有人就是寬屏,160個字都夠。 4.換行符
zf手冊建議是使用unix like的換行,不要使用Mac和Windows的換行
就是用\n ,不用\r或者\r\n
這個沒發現有什麼必要,能省一個符號?還是PHP主要跑在unix like上?恩命名方式 1.類
zf的類名字這樣的:我只舉幾個例子做下簡單的解釋:
zf的類都寫在Zend/目錄下
Zend/Db/Table.PHP 這個文件裡面的類就是 Zend_Db_Table
同樣:Zend/Feed/Rss.PHP 這個文件裡面的類就是Zend_Feed_Rss 注意:自己寫的類不要使用Zend_開頭。 2.接口只是多了一點,就是必須以_Interface結尾,所以看到文件名為Interface的就是接口了。
例如:Zend_Controller_Dispatcher_Interface 3.文件名所有的php代碼文件必須是.PHP結尾。
例如:Zend/Controller/Front.PHP
例如:Zend/VIEw/Helper/FormRadio.PHP 4.函數和方法
函數(function)只能用以字母開頭的字母數字。
zf建議所有的function都放到class中。
函數名必須是小寫字母開頭,如果是多個單詞組成,其余單詞必須是大寫字母。(camelCaps)
例如:getDate(),getElementById()
在面向對象中,成員變量的訪問需要使用set/get,這個設計模式有提到。
例如:private $_myz; public function setMyz(){}; public function getMyz(){}; 5.變量 private和protected類型的變量必須以下劃線開頭,而且是單下劃線。
public類型的變量不能以下劃線開頭。
變量名必須是小寫字母開頭,如果是多個單詞組成,其余單詞必須是大寫字母。(camelCaps) 6.常量例如:PHP_SELF
常量應該在類中定義:const MYZ_SELF 編碼風格 1.<?PHP ?>
zf裡面不建議使用短標簽:<??>。我也不建議...
另外一點就是:結尾不寫?>,理由上面解釋過。 2.String $myz = 'MyZ is cowboy!';
在字符串中需要使用引號的,那麼就用雙引號,裡面使用單引號,在SQL語句中用的很多。
$myz = "SELECT * FROM myFavorites WHERE name = 'frame' LIMIT 0,1"; $myz = "$name is cowboy!"; $myz = "{$name} is cowboy!";
這個是錯的:$myz = "${name} is cowboy!";(雖然這個在PHP中是正確的)。 $zf = 'zend ' . 'framework'; $zf = 'zend'
   . 'framework'
   . 'is'
   . 'good'; 3.數組
數字索引,索引從0開始。
$myz = array(1,2,3,'myz','great',$a); $myz = array ('zend' => '1.0.1',
'PHP' => '5.1.2',
'apache' => '2.2.4'); 4.類
4.1.類的聲明每個類需要有符合PHPDocumentor標准的注釋。
類內所有的代碼都要先縮進4個字符。
一個PHP文件內只能有一個類。
盡量一個PHP文件不要寫其他的代碼,如果有的話,請空兩行。 require_once 'Zend/Pdf/Resource/Image/Jpeg.PHP'; class SampleClass     // entire content of class
    // must be indented four spaces
} 4.2.類的成員變量不要使用var 這種方式定義變量,要使用private,protected,public,盡量不要把成員變量定義成public,而是使用set/get方式訪問。 5.函數和方法
5.1.函數和方法的聲明
類中的函數必須使用private,protected,public。函數後面的()緊貼函數名。 class Foo    
    public function bar()         // entire content of function
        // must be indented four spaces } 函數後面的參數也可以使用引用變量public function bar(&$bar),這個必須先定義成&才能用。
return($this->bar);//這個是錯誤的。要寫成:return $this->bar; 提高可讀性。 5.2.函數和方法的使用 bar($a, $b, $c); 6.控制語句
6.1.If/Else/Elseif
If,Else,Elseif 每個都要占一行。開始的大括號和if同行,結束的大括號另起一行。 if ($a != 2) {
    $a = 2;
} elseif ($a == 3) {
   $a = 4;
} else {
   $a = 7; 盡量多的使用elseif而不是再寫一個if。
在某些時刻也可以不使用{}。例如只有一行。 6.2.Switch
和if相似,開始的大括號和switch同行,結束的大括號另起一行。
每一個case都要有4個空格縮進。
switch ($numPeople) {
    case 1:
        break;     case 2:
        break;     default:
        break;
} 每個case需要有個break,如果想要出於某種特殊目的不寫break的,需要注明:// break intentionally omitted 7.注釋
7.1.所有的注釋都要符合phpdocumentor規范。http://PHPdoc.org/
具體的規范,請參考zf文件中的內容。 7.2.文件注釋
每個文件在開始都要有注釋,符合PHPdocumentor標准的。
7.3.類注釋
7.4函數注釋如果拋出異常,則需要:@throws exceptionclass [description]

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