欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

培養(yǎng)自己的php編碼規(guī)范

 更新時間:2015年09月28日 09:46:11   投稿:hebedich  
為了提高工作效率,保證開發(fā)的有效性和合理性,并最大程度提高程序代碼的可讀性和可重復(fù)利用性,提高溝通效率,需呀一份代碼編輯規(guī)范。

為什么我們要培養(yǎng)自己的編碼規(guī)范?

我們寫代碼的時候,一個好的編碼規(guī)范,對我們來說能夠起到很多意向不到的效果。至少會有一下的好處:

1、提高我們的編碼效率。整齊劃一的代碼方便我們進行復(fù)制粘貼嘛!
2、提高代碼的可讀性。
3、顯示我們專業(yè)。別人看到了我們的代碼,發(fā)現(xiàn)整個代碼的書寫流程都整齊劃一,瞬間逼格就上去了!
4、方便團隊協(xié)同工作。大家使用同一的規(guī)范,這樣就消除了五花八分的書寫方式,同一協(xié)調(diào)!

編碼規(guī)范包含兩大塊,代碼規(guī)范和注釋規(guī)范

其實我們所寫的php腳本,其實也就是由兩大塊組成的,即對代碼的書寫、對代碼的注釋!不同的框架,甚至不同的公司,對這方面都會有所不同,這里只是已將之言,僅僅是對自己的書寫規(guī)范進行一個總結(jié)!希望能對其他的朋友以啟示

1、代碼的書寫規(guī)范

文件夾的命名:

文件夾同一使用小寫字母。如存放控制器的文件夾,直接命名為controller即可

文件的命名:

如果是類文件的話,那么文件的命名應(yīng)該同類名稱保持一致,統(tǒng)一使用大駝峰。如Session.class.php , 對應(yīng)類名稱為Session,
如果是普通的工具腳本,那么統(tǒng)一使用小駝峰,如common.php

類名稱的命名:

類名稱同一使用大駝峰,Cookie類

方法名的命名:

統(tǒng)一使用小駝峰,一般使用 動詞 + 名次 的形式來描述該方法的功能,如sendMessage,發(fā)送短信。
在面向?qū)ο笾?,遵循同樣的?guī)則,但是個別地方有所區(qū)別:

public getUserName()
protected _getTotalAmount()
private _setBlanceAmount()

變量的命名規(guī)范:

關(guān)于變量,我們需要多說幾點:
1、無論在面向?qū)ο筮€是非面向?qū)ο蟮恼Z法中,變量統(tǒng)一使用小駝峰,如:$workYears。
但是在面向?qū)ο笾杏钟兴煌?,public 、 protected 、 private ,protected或者private屬性的時候,前面加上了 _ 作為區(qū)別

public $startPosition = 1;

protected $_salaryAmount =1000;

private $_sex = 'formale';

2、如果是常量的話,統(tǒng)一使用大寫,中間使用下劃線進行分割。

define('CURRENT_SCRIPT', 'index.php');

const TRANSACTION_TYPE = 'income';

3、全局變量,使用大駝峰,前綴加上 _ ,所有的單詞首字母大寫。因為知道一個變量的作用域是非常重要的,所以局部變量和全局變量應(yīng)該很明顯的進行分開!

$_System_Config;

$_Root_Path;

縮進符

關(guān)于編碼的縮進符號,我們統(tǒng)一使用制表符縮進!也許有的人會問為什么不適用空格縮進的呢?
原因很簡單,大部分的編輯器都支持制表符等于多少個空格,而使用空格就沒得調(diào)了!

運算符號

所有的兩元運算符號,都應(yīng)該前后使用空格進行

$name = 'zero';
$age > 18 ? 'adult' : 'children';

常見的流程語句規(guī)劃

我們約定,所有的流程語句的花括號都單獨占據(jù)一行。理由:如果遇到較為復(fù)雜的業(yè)務(wù)邏輯,花括號會出現(xiàn)很多的嵌套,這樣一來我們會混淆個個對應(yīng)的花括號!

1、分支語句

if($age >= 18 && $age <= 30) 
{
  echo 'young man';
}
else if($age > 30 && $age <= 60)
{
  echo 'middle aged';
}
else
{
  echo 'old man';
}

//下面這段代碼高手我們一個問題,在if語句中,即使在可以不要花括號的情況下,花括號也是要寫上的
if($age > 60)
{
  echo 'I am very old';
}

switch($status)
{
  case 'forbiden':
    echo 'login forbidden';
    break;
    
  case 'normal':
    echo 'login in';
    break;
    
  default:
    echo 'status is wrong' :
    break;
}

2、循環(huán)語句

while($condition)
{
  statesments......;
}

foreach($arrayList as $arrayKey => $arrayItem)
{
  states......;
}
do
{
  statements......;  
}
while($condition)


for($start; condition; changenumber)
{
  statements......;
}

2、注釋的書寫規(guī)范

很多人說好的代碼是不需要注釋的,其實,個人認(rèn)為這是一句很扯淡的話(也可能他是對的,除非整個團隊就他一個人,他包辦了一切,不用看別人的代碼)。

個人的觀點是:多寫注釋,無論是對團隊的其他人,還是對自己都是非常友好的!

根據(jù)個人的經(jīng)驗來看,注釋至少有以下幾個作用:

1、有利于提高代碼的可讀性,畢竟讀你的注釋要比讀你的代碼要容易的多!
2、有利于規(guī)劃自己的代碼布局!之所以這么說,是因為和代碼注釋的種類有關(guān)。“有利于代碼的布局”,這種看著有點懸的事,光說是說不明白的,我們需要實實在在的例子做支撐!
3、由于我們的注釋規(guī)范是按照phpdocumentor的要求,所以通過這個工具,還可以生成一份對代碼的總體說明,相當(dāng)于一個使用說明書!g

代碼注釋的種類

1、塊注釋
塊注釋,個人認(rèn)為主要用在了三個地方。對php腳本的描述、對一個大的功能模塊的描述、在一行之內(nèi)不能寫完注釋的時候,也應(yīng)該放在塊注釋中

2、行注釋
行注釋,個人認(rèn)為他是配合塊注釋進行工作的!一般用于描述一個大的功能模塊的具體細(xì)節(jié)!

實戰(zhàn)的案例

關(guān)于phpdocumentor語法的具體使用細(xì)節(jié),這里就不多說了,官網(wǎng)上說的再清楚不過了

從上面的例子中我們可以看一下代碼的布局大致是怎么回事,但是還需要我們在實踐中慢慢摸索

下面附上一些php的編程規(guī)范,給大家參考下

一、文件標(biāo)記:

 1.所有php文件,其代碼標(biāo)記均采用完整php標(biāo)簽,不建議使用短標(biāo)簽(短標(biāo)簽容易和xml混淆,php從5.4開始默認(rèn)不支持短標(biāo)記)。

 2.對于只有php的代碼文件,建議省略結(jié)尾處的‘?>'。這是為了防止多余的空格或其他字符影        響到代碼。

二、文件和目錄命名

 1.程序文件名和目錄名均采用有意義的英文命名,不使用拼音和無意義的字母,只允許出現(xiàn)字母、數(shù)字、下劃線和中劃線字  符,同時必須以‘.php'結(jié)尾(模板文件除外),多個詞間使用駝峰命名法。

    例://類統(tǒng)一采用:DemoTest.class.php

          //接口統(tǒng)一采用:DemoTest.interface.php

          //其他按照各自的方式:demoTest.{style}.php

三、文件目錄結(jié)構(gòu)

規(guī)范的目錄結(jié)構(gòu)有助于團隊協(xié)作開發(fā)和后期維護。

——app            //獨立的應(yīng)用

——class          //單個的類文件,共用的類文件

——conf/inc    //配置文件或目錄

——data          //數(shù)據(jù)文件或目錄

——doc           //程序相關(guān)文檔

——htdocs       //document_root

——images       //所有圖片文件存放路徑

——css            //css文件

——js               //js文件

——lib              //共用類庫

——template    //模板文件

——tmp            //臨時文件目錄

——cache    //緩存文件

——session  //SESSION文件

——template_c    //編譯后的模板文件

——other

——upload      //上傳文件

——manage    //后臺管理文件目錄

四、命名規(guī)范

1.變量命名:php中變量區(qū)分大小寫,一個有效的變量名由數(shù)字、字母或下劃線開頭,后面跟任意數(shù)量的字母、數(shù)字、下劃線。

    a)程序整體以駝峰命名法,以小寫字母開始,同時命名要有意義。(function displayName())

    b)PHP全局變量鍵值兩邊都有‘_',中間用駝峰命名法命名。($_GLOBAL['_beginTime_'])

    c)普通變量整體采用駝峰命名法,建議在變量前加表示類型的前綴。不確定類型的以大寫字符開頭。

    d)函數(shù)名要盡量有意義,盡量縮寫。

2.類及接口命名:

    a)以大寫字母開頭。

    b)多個單詞組成的變量名,單詞之間不用間隔,各個單詞首字母大寫。

    c)類名與類文件名保持一致。

    d)程序中所有的類名唯一。

    e)抽象類應(yīng)以Abstract開頭。

    接口命名規(guī)則:

        i)采用和類相同的命名規(guī)則,但在其命名前加‘i'字符,表示接口。

        ii)盡量保持和實現(xiàn)它的類名一致。

3.數(shù)據(jù)庫命名:在數(shù)據(jù)庫相關(guān)命名中,一律不出現(xiàn)大寫。

    a)表名均使用小寫字母。

    b)表名使用同一的前綴且前綴不能為空。

    c)對于多個單詞組成的表名,使用‘_'間隔。

    d)表字段命名規(guī)則。

            i)全部使用小寫字母。

            ii)多個單詞不用下劃線分割。

            iii)給常用字段加上表名首字母做前綴。

            iv)避免使用關(guān)鍵字和保留字。

五、注釋規(guī)范

1.程序注釋:寫在代碼前面而不是后面,單行代碼按照習(xí)慣寫在代碼尾部;大段注釋采用/**/的方式,通常為文件或函數(shù)的頂部,代碼內(nèi)部使用'//';注釋不宜太多;代碼注釋應(yīng)該描述為什么而不是做什么,給代碼閱讀者提供最主要的信息。

2.文件注釋:文件注釋一般放在文件的頂部,包括本程序的描述、作者、項目名稱、文件名稱、時間日期、版本信息、重要的使用說明(類的調(diào)用,注意事項等)。版本更改要修改版本號,并加上mofify注釋。

3.類和接口注釋:按照一般的習(xí)慣,一個文件只包含一個類。

4.方法和函數(shù)注釋:方法和函數(shù)的注釋寫在前面,通常需要表明信息的主要可見性、參數(shù)類型和返回值類型。

    /**

    *    連接數(shù)據(jù)庫

    *    @param string $dbhost    數(shù)據(jù)庫服務(wù)器地址

    *    @param string $dbuser    數(shù)據(jù)庫用戶名

    *    @param string $dbpwd    數(shù)據(jù)庫密碼

    */

六、代碼風(fēng)格

1.縮進和空格:使用4個空格做為縮進,不使用Tab鍵;變量賦值時,等號兩邊留出空格。($url = '$_GET['url']';)

2.語句斷行:盡量保證程序語句一行即一句;盡量不要使一行的代碼過長,80個字符以內(nèi);如果一行的代碼太長,請使用類似于‘.='方式斷行連接;執(zhí)行數(shù)據(jù)庫的sql語句操作時,盡量不要再函數(shù)內(nèi)寫sql語句,而先用變量定義sql語句,然后在執(zhí)行操作的函數(shù)中調(diào)用定義的變量。

3.更好的習(xí)慣:在代碼中使用下面列舉的方法,可以使代碼更優(yōu)雅。

        1):多使用php中已經(jīng)存在的常量,而不要自己定義。

            例://換行

                  echo $msg."\r\n";

                  echo $msg,PHP_EOL;

                php中PHP_EOL是一個預(yù)定義常量,表示一行結(jié)束,隨著所使用系統(tǒng)不同,使用PHP_EOL代碼可移植性更高

        2):在echo中使用逗號做連接符,比用‘.'做連接符代碼更美觀。

        3):單引號的效率高于雙引號,但二者在使用上有區(qū)別,學(xué)會使用printf函數(shù)。

            例://echo

                echo  '每個'.$scholl.'大約有'.floor($avg).'個學(xué)生';

                  //printf

               $format = '每個%s大于有$d個學(xué)生';

                printf($format,$school,$avg);

        4)  :詳細(xì)的注釋

        5):不要 濫用語法糖,語法糖就是語言中的潛規(guī)則,即不具備普遍代表性的語法。

相關(guān)文章

  • PHP購物車類Cart.class.php定義與用法示例

    PHP購物車類Cart.class.php定義與用法示例

    這篇文章主要介紹了PHP購物車類Cart.class.php定義與用法,結(jié)合實例形式給出了購物車類Cart.class.php的完整定義代碼并分析了相關(guān)的使用技巧,需要的朋友可以參考下
    2016-07-07
  • PHP令牌 Token改進版

    PHP令牌 Token改進版

    那個版本中,存在一個小問題,因為要做可逆加密,而加密出來的字符是不可顯示字符+亂碼,所以我用了 base64對其進行了處理,這樣一來,就不會有亂碼和不可顯示字符了。
    2008-07-07
  • PHP常用的三種設(shè)計模式匯總

    PHP常用的三種設(shè)計模式匯總

    本文給大家簡單介紹了PHP中最常用的三種設(shè)計模式:單例設(shè)計模式、工廠設(shè)計模式和觀察者設(shè)計模式。都是個人的一些經(jīng)驗總結(jié),希望小伙伴們能夠喜歡
    2016-08-08
  • PHP基于二分法實現(xiàn)數(shù)組查找功能示例【循環(huán)與遞歸算法】

    PHP基于二分法實現(xiàn)數(shù)組查找功能示例【循環(huán)與遞歸算法】

    這篇文章主要介紹了PHP基于二分法實現(xiàn)數(shù)組查找功能,結(jié)合實例形式分析了while循環(huán)與遞歸調(diào)用算法實現(xiàn)二分查找功能的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • PHP上傳文件時自動分配路徑的方法

    PHP上傳文件時自動分配路徑的方法

    這篇文章主要介紹了PHP上傳文件時自動分配路徑的方法,可實現(xiàn)對上傳文件的分類存放功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • 解析php php_openssl.dll的作用

    解析php php_openssl.dll的作用

    本篇文章是對php中php_openssl.dll的作用進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • PHP與Web頁面的交互示例詳解一

    PHP與Web頁面的交互示例詳解一

    這篇文章主要介紹了PHP與Web頁面的交互示例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • PHP簡單預(yù)防sql注入的方法

    PHP簡單預(yù)防sql注入的方法

    這篇文章主要介紹了PHP簡單預(yù)防sql注入的方法,結(jié)合實例形式簡單分析了php針對sql參數(shù)過濾實現(xiàn)防注入的相關(guān)技巧,需要的朋友可以參考下
    2016-09-09
  • 功能強大的php分頁函數(shù)

    功能強大的php分頁函數(shù)

    這篇文章主要為大家分享了功能強大的php分頁函數(shù),為php初學(xué)者分析一下php分頁實現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • php開發(fā)中的頁面跳轉(zhuǎn)方法總結(jié)

    php開發(fā)中的頁面跳轉(zhuǎn)方法總結(jié)

    PHP頁面跳轉(zhuǎn)實現(xiàn)的功能就是將網(wǎng)站中一個網(wǎng)頁跳轉(zhuǎn)到另一個網(wǎng)頁中。對于剛剛學(xué)習(xí)PHP語言的朋友來說,是必須要掌握的基礎(chǔ)方法。
    2015-04-04

最新評論