PHP教程:PHP編碼書(shū)寫(xiě)規(guī)范_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:PHP中addcslashes函數(shù)與stripcslashes的用法
      今天在寫(xiě)一個(gè)網(wǎng)站的英文版時(shí),寫(xiě)完后填加英文資料,我隨便填寫(xiě)時(shí)一點(diǎn)問(wèn)題沒(méi)有,但每當(dāng)填加指定的內(nèi)容時(shí)卻填加不上,也不報(bào)錯(cuò),我查看了數(shù)據(jù)庫(kù),發(fā)現(xiàn)這個(gè)字段用的是“TEXT”數(shù)據(jù)數(shù)型,

      1 文件結(jié)構(gòu)


      |
      |――images
      |――include
        |――parameter
        |――config
        |――function
      |――index

      images存放圖片文件,include中是系統(tǒng)是要引用的文件,一般在parameter中存放參數(shù)文件,config中存放配置文件,function中存放方法文件,如javascript的方法等,并按功能模塊的分類(lèi),將各功能的類(lèi)也放入其中。

      2 文件名

      文件夾命名一般采用英文,長(zhǎng)度一般不超過(guò)20個(gè)字符,命名采用小寫(xiě)字母。除特殊情況才使用中文拼音,一些常見(jiàn)的文件夾命名如:images(存放圖形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript腳本),inc(存放include文件),link(存放友情鏈接),media(存放多媒體文件)等。文件名稱統(tǒng)一用小寫(xiě)的英文字母、數(shù)字和下劃線的組合。

      3 源文件的編碼規(guī)范

      3.1 開(kāi)頭注釋

      所有的源文件都應(yīng)該在開(kāi)頭有一個(gè)C語(yǔ)言風(fēng)格的注釋?zhuān)渲辛谐鲱?lèi)名、功能、版本信息、日期、作者和版權(quán)聲明:


      /*
       * 類(lèi)名
       * 功能
       * 版本
       * 日期
       * 作者
       * 版權(quán)
      */


      如果對(duì)文件進(jìn)行了修改,應(yīng)該在文件頭中說(shuō)明修改目的、修改日期、修改人,并變更文件的版本信息;如果修改問(wèn)文件的一部分,則在文件中進(jìn)行注釋即可,并且標(biāo)識(shí)出修改部分的起止位置
      ……


      /*
       * 修改目的
       * 修改日期
       * 修改人
       * 版本
      */

      ……
      修改起始
      ……
      ……
      修改結(jié)束
      ……

      3.2 引入語(yǔ)句

      引入語(yǔ)句應(yīng)該位于文件的頭部,并在引入時(shí)說(shuō)明引入文件的作用。例如:


      //數(shù)據(jù)庫(kù)操作類(lèi)
      require( “db.php” );

      3.3 類(lèi)的聲明

      1 類(lèi)文檔注釋(/**……*/) 該注釋中所需包含的信息,參見(jiàn)"文檔注釋"
      2 類(lèi)的聲明
      3 類(lèi)實(shí)現(xiàn)的注釋(/*……*/)如果有必要的話 該注釋?xiě)?yīng)包含任何有關(guān)整個(gè)類(lèi)的信息,而這些信息又不適合作為類(lèi)文檔注釋。
      4 類(lèi)的(靜態(tài))變量 首先是類(lèi)的公共變量,隨后是保護(hù)變量,再后是包一級(jí)別的變量(沒(méi)有訪問(wèn)修飾符,access modifier),最后是私有變量。
      5 實(shí)例變量 首先是公共級(jí)別的,隨后是保護(hù)級(jí)別的,再后是包一級(jí)別的(沒(méi)有訪問(wèn)修飾符),最后是私有級(jí)別的。
      6 構(gòu)造器
      7 方法 這些方法應(yīng)該按功能,而非作用域或訪問(wèn)權(quán)限,分組。例如,一個(gè)私有的類(lèi)方法可以置于兩個(gè)公有的實(shí)例方法之間。其目的是為了更便于閱讀和理解代碼

      3.4 縮進(jìn)排版

      4個(gè)空格常被作為縮進(jìn)排版的一個(gè)單位。縮進(jìn)的確切解釋并未詳細(xì)指定(空格 vs. 制表符)。一個(gè)制表符等于8個(gè)空格(而非4個(gè)),所以在某些編輯器中,需要特別指定一下制表符的長(zhǎng)度為4(UltraEdit),而在某些編輯器中,會(huì)將制表符轉(zhuǎn)換為空格

      3.5 行長(zhǎng)度

      盡量避免一行的長(zhǎng)度超過(guò)80個(gè)字符,因?yàn)楹芏嘟K端和工具不能很好處理之。

      3.6 換行

      當(dāng)一個(gè)表達(dá)式無(wú)法容納在一行內(nèi)時(shí),可以依據(jù)如下一般規(guī)則斷開(kāi)之:

      - 在一個(gè)逗號(hào)后面斷開(kāi)
      - 在一個(gè)操作符前面斷開(kāi)
      - 寧可選擇較高級(jí)別(higher-level)的斷開(kāi),而非較低級(jí)別(lower-level)的斷開(kāi)
      - 新的一行應(yīng)該與上一行同一級(jí)別表達(dá)式的開(kāi)頭處對(duì)齊
      - 如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)8個(gè)空格。

      以下是斷開(kāi)方法調(diào)用的一些例子:



      someMethod(longExpression1, longExpression2, longExpression3,
               longExpression4, longExpression5);

      $var = someMethod1(longExpression1,
         someMethod2(longExpression2,
         longExpression3));


      以下是兩個(gè)斷開(kāi)算術(shù)表達(dá)式的例子。前者更好,因?yàn)閿嚅_(kāi)處位于括號(hào)表達(dá)式的外邊,這是個(gè)較高級(jí)別的斷開(kāi)。



      $longName1 = $longName2 * ($longName3 $longName4 - $longName5)
                   4 * $longname6; //使用這種縮進(jìn)方式

      $longName1 = $longName2 * ($longName3 $longName4
                         - $longName5) 4 * $longname6; //避免這種


      以下是兩個(gè)縮進(jìn)方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進(jìn)方式將會(huì)使第二行和第三行移得很靠右,所以代之以縮進(jìn)8個(gè)空格



      //傳統(tǒng)的縮進(jìn)方式
      function someMethod($anArg, $anotherArg, $yetAnotherArg,
                $andStillAnother) {
      ...
      }

      //利用8個(gè)連續(xù)空格避免過(guò)渡的縮進(jìn)
      function horkingLongMethodName($anArg,
           $anotherArg, $yetAnotherArg,
           $andStillAnother) {
      ...
      }


      if語(yǔ)句的換行通常使用8個(gè)空格的規(guī)則,因?yàn)槌R?guī)縮進(jìn)(4個(gè)空格)會(huì)使語(yǔ)句體看起來(lái)比較費(fèi)勁。比如:



      //不要使用這種縮進(jìn)方式
      if ((condition1 && condition2)
        || (condition3 && condition4)
        ||!(condition5 && condition6)) { //錯(cuò)誤的換行方式,沒(méi)有進(jìn)行縮進(jìn)
        doSomethingAboutIt(); //條件與此句對(duì)齊,造成閱讀程序時(shí)很可能漏過(guò)此句
      }

      //應(yīng)該使用這種縮進(jìn)方式
      if ((condition1 && condition2)
          || (condition3 && condition4)
          ||!(condition5 && condition6)) {
        doSomethingAboutIt();
      }

      //或者這樣的縮進(jìn)方式也可以
      if ((condition1 && condition2) || (condition3 && condition4)
              ||!(condition5 && condition6)) {
        doSomethingAboutIt();
      }


      這里有三種可行的方法用于處理三元運(yùn)算表達(dá)式:



      $alpha = (aLongBooleanExpression) ? beta : gamma;

      $alpha = (aLongBooleanExpression) ? beta
                       : gamma;

      $alpha = (aLongBooleanExpression)
          ? beta
          : gamma;


      分享:PHP.MVC的模板標(biāo)簽系統(tǒng)
      PHP.MVC的模板標(biāo)簽系統(tǒng)(PhpMVC_Tags)現(xiàn)在提供了3種類(lèi)型的標(biāo)簽:包含指令,聲明和表達(dá)式. 包含指令能讓我們將內(nèi)容分隔為許多模塊,比如:頁(yè)眉,頁(yè)腳或者內(nèi)容.包含的頁(yè)面可以是HTML,或者其他標(biāo)簽?zāi)0屙?yè)

      共8頁(yè)上一頁(yè)12345678下一頁(yè)
      來(lái)源:模板無(wú)憂//所屬分類(lèi):PHP教程/更新時(shí)間:2008-08-22
      相關(guān)PHP教程