2012-07-31 133 views
1

Codeniffer的标准是否会在下面的代码中运行时没有错误或警告? 如果没有有创建代码标准的教程,那也解释了已经实现的标准的不同嗅探器?有没有允许这个代码嗅探器标准?

<?php 

    /** 
    * project name 
    * 
    * description 
    * 
    * @author First Last <[email protected]> 
    */ 

    class Cookie 
    { 
     public static function set($key, $user, $timeout, $data, $sessionId) 
     { 
     foreach($user as $key => $value) 
     { 
      // some other things 
     } 

     if($key > 1) 
     { 
      // Line length 120 
      // Unix line endings 
      // no counts in loops 
     } 
     elseif($key == 1) 
     { 
      $timeout = TRUE; 
     } 

     switch ($data) 
     { 
      case '1': 
      { 
       // only '' for strings 
      }break; 

      case '2': 
      { 
      }break; 

      default: 
      { 

      }break; 
     } 
     } 

     public static function get($key) 
     { 

     } 

     public static function delete($key) 
     { 

     } 
    } 

?> 

感谢您的回答。

+1

包括整个file_上的4个字符intendation?这是什么奇怪的编码标准? :X和大括号'case's?你为什么不想采用现有的? PSR-1是一个很好的开始;)(旁边:如果你问我,你浪费很多,很多(垂直)空间......) – KingCrunch 2012-07-31 11:43:20

+2

我看不到为什么我应该保存垂直空间的原因,我从来没有打印过我的代码;) 我试过PSR2,但是这个抱怨我的括号(换行),它也不喜欢结尾标签?> ..但我想要那些,然后它想要一个缩进4行,但我想要3 ... – Pascal 2012-07-31 11:50:13

+0

全球使用2或4作为标准,为什么要3? – 2012-07-31 11:53:23

回答

2

我维护PHP_CodeSniffer,所以人们给我一些嗅探和标准。我还没有看到确保代码看起来像你展示的样本的标准。

您可以使用ruleset.xml文件合并现有的嗅探来创建自己的标准。一些文档在这里:http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

但我知道你不会有所有你需要创建你的标准嗅探。因此,您可以强制执行其中的一部分,并且您可能会发现您决定使用其他一些嗅探器,但是仅IF/ELSEIF(即不适用于SWITCH语句)的括号之间的缺失间距不是在存储库中。我知道这不是你所要求的,但是如果你确实考虑使用现有的编码标准,我建议从包含PEAR标准(也是默认值)开始,因为它是最不严格的。如果你想要更多的规则,PSR2和1标准正在开发中,并且可能在未来很适合,或者如果你有一个庞大的团队并且想要锁定,包含的Squiz标准也是有用的遵循最多的风格规则。