PHP 程式設計標準
最常見的習慣為:
1. 變數 $a1 和 $al 傻傻分不清楚,盡量少用 會混淆的東西當 變數名稱和 function
可改為
可改為
2. 拒絕使用全域變數,增加系統安全性。
URL http://blog.phptw.idv.tw/?option=modules&task=listview&id=10
取得URL 參數 方法為 $_REQUEST[option]、$_REQUEST[task]、$_REQUEST[id]
其中 $strOption str 表示宣告此變數的內容為 字串
其中 $intID int 表示宣告此變數的內容為 數值
function 的取代方式可以使用 參照 或 物件導向 的方式
參照的寫法
3. 善用註解
註解應該像是說個故事
讓你的註解像是描述這個系統的一個故事,預期你的註解會被自動程式從程式碼中取出然後格式化成說明頁面;而物件的註解就是這個故事的一部分,函式註解、函式參數與函式的配置則是故事的另外一個部份。所有的內容應該編織在一起,並且在另一個時間點告訴某人你做了些什麼以及為什麼這麼做
寫下為什麼這麼做
註解應該說明你的決定,在任何一個你必須做出決定的地方留下註解說明你做了什麼決定以及為什麼,考古學家會從裡面找到最有用的資訊
使用標頭( Headers)
使用像是 ccdoc 的文件抽離系統,文件中的其他部分說明如何使用 ccdoc 來完成一個物件與函式的文件。
這些標頭使用同樣的規則結構化,這樣一來它們可以被分析與分離。他們不像是一般的標頭,所以花點時間去完成填寫。如果你一次作對,你就不需要另外製作文件了!
註解配置
專案的每個部份都該有個特別的註解配置方式
明確的抓住重點
明確的對以下事情加以註解:在正常的控制流程之外所發生的變數變化; 在維護時很可能會被弄壞的程式碼。使用內嵌關鍵字來指出程式要點與潛在問題。 想像有一個自動程式,它會剖析您的註解以尋找關鍵字,然後取出關鍵字所指的 內容,再製作出一份報告,好讓大家在需要解決的地方予以特別處理。
搜尋關鍵字﹝Gotcha Keywords﹞
:TODO: 主題
表示這裡還有工作尚待完成,不要忘記了。
:BUG: [bugid] 主題
表示這裡有一個已知的臭蟲,並加以解釋,或許再給一個臭蟲編號。
:KLUDGE:
當您很笨拙的完成某件事情時,就明白的說出來,並說明您下次想採取 怎樣不同的方法去做,如果您還有時間的話。
:TRICKY:
告訴別人以下的程式碼是非常有技巧的,請不要不加思索的修改它。
:WARNING:
要注意某件事情。
ARSER:
偶爾您必須設法解決程式語言剖析器所產生的問題。請加以註明。這個剖析器的 問題終會被修正。
:ATTRIBUTE: value
這是個一般格式,說明該註解所內含的屬性。您可以創造您自己的屬性,它們 也會被析取出來。
搜尋格式﹝Gotcha Formatting﹞
將搜尋關鍵字放在註解的最前面,亦即第一個符號。
註解也許會包含好幾行,然而第一行必須是獨立而有意義的簡要說明。
作者的名字與註解的日期也應該寫在註解裡面。這兩項資訊雖然也可以 在原始碼的倉儲裝置中找到,但是這或許需要一段時間才能查明這段註解 到底是誰、在什麼時後所加上去的。通常這會浪費許多時間去搜尋。 將日期資訊寫在註解裡面,可以讓其他程式設計師在做決定時有所依據。 將作者資訊寫在註解裡面,可以讓我們知道應該找誰問問題。
範例
// :TODO: 年月日 960810: 執行效率問題
// 其實我們應該在這裡使用雜湊表,但是現在先使用線性搜尋。
// :KLUDGE: 年月日 960810: 不安全的強制轉型
// 這裡我們需要作一個強制轉型,以回復原本的衍生型別。或許我們應該
// 使用一個 virtual method、或是使用 template。
4. 善用縮排
4.1 縮排/跳位/空格 規則
a. 在每一層用四個空白當縮排
b. 不要使用跳位鍵( tabs ),使用空白;大部分的編輯器都可以將跳位轉換為空白
c. 使用剛好的縮排即可,不要濫用。沒有明確的規則限制最多可以使用幾層縮排,不過如果縮排的層次大於4或5層,您也許需要將程式碼作適當的切割
4.2 解釋
a. 當其他人使用了不同的跳位鍵設定,就會因此無法(難以)閱讀或列印,因此空白會比跳位鍵好
b. 大部分的PHP應用程式使用4個空白
c. 大部分的編輯器預設也是4個空白
d. 許多人嘗試要去限制最多可以使用的縮排階層數,但是通常無法落實。我們相信程式設計人員會聰明的選擇巢狀程式碼的深度
其他的相關範例可以參考:
http://twpug.net/docs/php_coding_standard.html
參考網頁: