在PSR基礎(chǔ)上自定義的代碼命名規(guī)范

根據(jù)PSR基礎(chǔ)規(guī)范和PHP100知名講師張恩民的PHP教學(xué)視頻進(jìn)行整理,所有命名禁止使用阿拉伯?dāng)?shù)字。

目錄、文件和局部變量

  • 使用英文名詞、動(dòng)詞,所有字母均使用小寫(xiě),以下劃線作為單詞的分隔。

    目錄:upload,templates,install
    文件:index.php,config.php
    變量:$pay_time,$user_name,$article_del_time
    

全局常量

  • 使用英文名詞、動(dòng)詞,所有字母均使用大寫(xiě),以下劃線作為單詞的分隔。

      define('WEBSITE_NAME','erchoc');
      define('WEBSITE_URL','http://www.erchoc.com');
    

數(shù)組變量

  • 使用英文名詞、動(dòng)詞,以下劃線作為單詞的分隔。

  • 所有字母均使用小寫(xiě),以_array結(jié)束。

      $scopr_array = array();
      $book_id_array = array();
    

對(duì)象變量

  • 使用英文名詞、動(dòng)詞,以下劃線作為單詞的分隔,可以完整采用類名或者簡(jiǎn)化類名,但是必須明確知道是什么類。

  • 所有字母均使用小寫(xiě),以_obj結(jié)束。

    $user_obj = new userAccount();
    $pay_obj = new payOrder();
    

類的命名

  • 使用英文名詞,以大寫(xiě)字母作為詞的分隔,其他字母均使用小寫(xiě)。

  • 名詞的首個(gè)字母小寫(xiě),類名不使用下劃線。

    class userAccount{......}
    

方法命名

  • 使用英文名詞、動(dòng)詞,所有字母均使用小寫(xiě),以下劃線作為單詞的分隔。

  • 對(duì)象屬性的命名同理。

    class userCar{
      public $user_name = 'Erchoc';
      public function account_price_car() {
        ......
      }
      public function add_user_car() {
        ......
      }
     }
    

函數(shù)、符號(hào)和運(yùn)算符規(guī)范

  • switch的每個(gè)case塊都要換行再加上break,而default必須存在以處理特殊情況。

    switch() {
      case 'user':
        ......
      break;
      case 'type':
        ......
      break;
      default:
        ......
      break;
    }
    
  • 聲明定位風(fēng)格:變量的代碼塊必須等于號(hào)對(duì)其,且初次使用變量必須初始化。

    $tableName   = '';
    $user_article = '';
    

盡量避免下面的做法:

  $tableType;
  $get_bookArticle = '';
  $user_show = '';

其他基礎(chǔ)規(guī)范

  • 除書(shū)寫(xiě)SQL和需要加入變量的時(shí)候使用雙引號(hào),其他盡可能使用單引號(hào)代替雙引號(hào)。

  • PHP文件中盡可能不出現(xiàn)HTML語(yǔ)句,尤其是使用模板開(kāi)發(fā),考慮到模板兼容性,HTML文件中也盡可能減少PHP代碼。

  • 通常每個(gè)方法只完成一個(gè)特定的功能(邏輯動(dòng)作事務(wù)),所以方法的命名要能清楚說(shuō)明它的用處,例如使用email_error_check()代替email_chenk(),用pay_error_check()代替pay_chenk()。

  • 自定義方法和變量名不能與系統(tǒng)方法和變量沖突。

  • HTML的form表單各元素的name和數(shù)據(jù)庫(kù)字段名或者PHP接受變量一致,或者在字段名的基礎(chǔ)上團(tuán)隊(duì)確定表單元素名添加前綴或者后綴。

  • HTML的form表單不要采用缺省方法bool值判斷非零數(shù)值,必須如下顯式測(cè)試。

    if($user_pay_num != false) {
       ......
    }
    

各種注釋的規(guī)范

  • 流程控制和無(wú)參函數(shù)在實(shí)現(xiàn)前使用單行注釋,需要特別說(shuō)明的行在行尾添加單行跟蹤注釋。
    //用戶檢測(cè)
    if($check_obj->username( $username ) == true){......}
    $user_name = $_POST['username'];//獲取用戶信息
  • 多參數(shù)方法注釋:
    /**
    * 分頁(yè)預(yù)處理函數(shù)
    * sql SQL語(yǔ)句
    * page 當(dāng)前頁(yè)數(shù)
    * limit 每頁(yè)現(xiàn)實(shí)的數(shù)量
    * maxs 查詢總數(shù)
    */
    function page_limit($sql, $page='0', $limit=10, $maxs=''){
    ......
    }

數(shù)據(jù)庫(kù)設(shè)計(jì)與操作規(guī)范

  • 數(shù)據(jù)庫(kù)名稱使用英文小寫(xiě),以下劃線分隔單詞,以免跨平臺(tái)時(shí)出現(xiàn)的大小寫(xiě)錯(cuò)誤。
  • 數(shù)據(jù)表名稱應(yīng)該由物體對(duì)象名稱的小寫(xiě)字母組成,以下劃線分隔單詞。并盡可能對(duì)應(yīng)系統(tǒng)中業(yè)務(wù)類的名稱,如laravel框架的數(shù)據(jù)表名稱為Model類的復(fù)數(shù)小寫(xiě)形式。
  • 數(shù)據(jù)表的字段避免使用varchar和text等不定長(zhǎng)的數(shù)據(jù)。
  • 查詢多表連接數(shù)據(jù)時(shí)候要求使用全名稱或者別名,即使用tableName.fieldName代替fieldName
  • SQL語(yǔ)句應(yīng)盡可能符合ANSI92標(biāo)準(zhǔn),避免使用T-SQL或者PL-SQL等特定數(shù)據(jù)庫(kù)對(duì)SQL語(yǔ)言的擴(kuò)充特性。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容