是否有允许这样的代码嗅探器标准?

时间:2012-07-31 11:40:50

标签: php codesniffer

是否有一个codeniffer标准,可以在没有错误或警告的情况下运行以下代码? 如果没有创建代码标准的教程,那也解释了已经实现的标准的不同嗅探器?

<?php

   /**
    * project name
    *
    * description
    * 
    * @author   First Last <email@google.com>
    */

   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 个答案:

答案 0 :(得分: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标准也很有用最简单的规则。