多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP書寫規范 PHP Coding Standard

PHP書寫規范 PHP Coding Standard

來源:程序員人生   發布時間:2014-01-20 12:19:01 閱讀次數:3015次

通用原則:
1、語義化
看到名字,就知道意思。

2、通用前綴
is表示是否、get表示讀、set表示寫。is后面優先跟形容詞,而不是名詞,比如是否多語言文字,應使用is_multilingual,而不是is_multilanguage。

3、單數與復數
參考js的函數命名規則:getElementById、getElementsByTagName、getElementsByName。
例如:
取我的多個好友的名字,應使用getFriendsName,而不是getFriendNames或者getFriendName
取一個用戶,是getUser
取多個用戶,是getUsers

4、冗余后綴
盡量不使用data、list、info后綴。
比如,js的命名就很注意,使用getElementsByTagName而不是getElementsInfoByTagName。
應該使用getFriends或者getFriendsUserId,而不是getFriendsList;應該使用getUser,而不使用getUserInfo或者getUserData。
不過有時候很難避免,比如有2個函數,分別是取用戶基本信息,和取用戶詳細信息。
取用戶基本信息:昵稱、頭像URI,函數名getUserBasic還是getUserBasicInfo?函數名以形容詞結尾感覺不合適,待討論。
取用戶詳細信息:昵稱、頭像URI、簽名、生日,函數名getUser沒問題。

5、含義模糊的類名、文件名、目錄名
每當使用common、util、functions、class、object、basic作為文件名時要慎重,由于這些詞太通用,發展下去里面東西可能越來越多,變成垃圾箱。要給這些起一個準確的名字,比如要做字符串處理的類,可以叫StringLib.php,放在lib目錄里。

6、lib、plugin與addon的區別
有些類、函數算做lib、plugin還是addon。待討論。

類名:
大寫字母開頭,駝峰命名。一般使用名詞,比如配置解析類ConfigParser,而不是ParseConfig。
與Java、C++一致。
例如:class UserModel

類的文件名:
與類名相同。這與php autoload有關,為了autoload,類名總要很長,待討論。
與Java一致。
例如:class UserModel的文件名為UserModel.php

非類文件名:
全小寫,下劃線分隔,不得使用空格。比如get_user.php。

目錄名:
全小寫,下劃線分隔,不得使用空格。比如model、www。

函數名:
小寫字母開頭,駝峰命名,例如:function addBlog()。
與Java、C++一致。
函數表示功能,即動作,所以動詞優先,例如使用editBlog,而不用blogEdit。
PHP內置函數由于歷史原因,有多種風格,do_something,something_do,dosomething,比較新的函數用了doSomething,才與目前主流語言保持一致。
比如:paser_str、json_encode、substr、fetchAll。
歷史原因可能無法改變,但我們能保證新的代碼是嚴謹的,不要讓自己成為歷史原因。

類中的函數:
兩個函數中間空一行。如果有時間的話,各個函數按英文字母排序,免得太混亂。
例如:
class BlogModel
{
    public function addBlog()
    {

    }
   
    public function updateBlog()
    {

    }
}

文件注釋:
注釋緊跟<?php下一行。注明作者。@version暫不需要寫,因為svn提供了版本管理。
格式按照PHPdoc的要求:http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_tags.author.pkg.html
<?php
/**
 * blog的各種業務:添加、更新
 * @author sink
 *
 */
class BlogModel
{

}
?>

API注釋:
一定要寫輸入參數,和輸出格式。寫清楚正確時輸出什么,錯誤時輸出什么。
否則別人無法使用。

函數注釋:
一定要寫輸出格式。寫清楚正確時輸出什么,錯誤時輸出什么。
如果輸入參數比較復雜,包含數組,看參數無法一目了然,則要寫輸入參數的注釋。
文檔注釋與函數之間不能有空行。
如果函數內部步驟比較復雜,需要寫“行內注釋”。
例如:
/**
 * 更新blog
 * @param int $id blog_id
 * @param array $data array(
    "content" => "", //內容
    "tags" => "", //標簽
    "update_time" => "", //更新時間
 )
  * @return bool
 */
public function updateBlog($id,$data)
{
    step1 //第一步:asdf
    step2 //第二步:qwer
}

URI:
根據rfc1034國際標準的規定,域名中禁止出現下劃線“_”,域名不區分大小寫。
比如http://dl_dir.qq.com/是錯誤域名。
http://veryhuo.com與http://VERYHUO.COM相同。
所以優先在URI中使用全小寫,GET的name小寫,但是GET的值除外。
比如
http://www.google.com/?hl=zh-CN
http://www.google.com/?hl=zh-cn
URI中非參數的專有名詞的縮寫是否使用小寫,有爭議無定論。
比如
http://fedoraproject.org/zh_CN/
http://zh.wikipedia.org/zh-cn/
http://code.google.com/intl/zh-CN/
http://www.microsoft.com/en-us/
語言文字代碼是專有名詞,ISO規定必須是減號,且建議地區使用大寫。
fedora的用法很奇怪,使用了自己制造的zh_CN,而不是zh-CN。而且不建議在URI中使用下劃線。
wiki用了小寫,google用了大寫,微軟用了小寫。

優先在URI中使用減號“-”,而不是下劃線,GET的name除外。
比如
http://example.com/1-2-2
http://example.com/?user_id=123
如果希望用戶手動輸入URI,則不要區分大小寫,且優先使用小寫,因為用戶輸入更方便。
實際情況是:用戶一般是手動輸入域名,而不手動輸入URI,因為URI很長。在這種情況下,URI小寫是否有意義,如果使用 http://example.com/?userId=123,變量名就可以使用駝峰$userId = $_GET['userId'],就能夠和Java、C++保持一致,這樣數據庫也要駝峰命名。待討論。

變量:
全小寫,下劃線分隔,例如:$user_id。
與Java、C++不一致。待討論。
類的成員變量、函數的形參、類實例化成一個對象,都遵守變量的命名規則。
原因:URI、數據庫有小寫慣例,從$_GET、$_POST中獲得參數入庫,所以用小寫。
PHP內置變量$_GET、$_POST使用下劃線開頭,全大寫。自定義的變量無論多么重要,都不要使用下劃線開頭,以免將來與內置變量沖突。
比如:不要使用$_PUT、$_DELETE。

常量:
全大寫,下劃線分隔。例如:const MEMCACHE_TTL = 600;

PHP短標簽:
使用<?php ?>,不使用短標簽<? ?>。因為與xml沖突,且不利于部署。

類大括號換行:
可以采用大括號單獨占一行,也可以大括號與別的放在一行,有爭議無定論,待討論。
class UserModel
{

}
支持換行者:
http://www.php.net/manual/zh/language.oop5.basic.php
http://pear.php.net/manual/en/standards.classdef.php

精彩內容,請點擊下一頁!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美 日韩 成人 | 国产激情一区二区三区 | 国产资源中文字幕 | 亚洲欧美视频 | 亚洲精国产一区二区三区 | 亚洲成人福利 | 成人卡通精品卡通动漫第一页 | 亚洲第一成年人网站 | 国产不卡毛片 | 欧美一级爱操视频 | 欧美区一区二区三 | 久久99国产精品成人欧美 | 国产美女无遮挡免费视频网站 | 欧美成人综合在线观看视频 | 1000部精品久久久久久久久 | 色福利在线 | 亚洲国产精品视频 | 精品肉动漫资源在线观看 | xx视频在线 | 久久se精品一区二区影院 | 性国产| 嫩草影院在线观看精品视频 | 国产精品第| 伊人久久久久久久久久 | 国产免费福利网站 | 妇欲欢公爽公妇高h欲 | 中文字幕欧美亚洲 | 欧美成人性h版 | 亚洲免费观看网站 | 亚洲精品福利在线观看 | 欧美videosex性欧美成人 | 羞羞网站入口 | 日本无卡无吗在线 | 欧美18+| 欧美一级欧美一级毛片 | 欧美啊啊 | 亚洲成人自拍网 | 2020久久精品亚洲热综合 | 亚洲乱码卡三乱码新区 | 亚洲一区二区欧美日韩 | 国产精品亚洲欧美日韩久久 |