1

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

<?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)
      {

      }
   }

?>

感谢您的回答。

4

1 回答 1

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 标准也很有用下来最风格的规则。

于 2012-07-31T22:48:38.463 回答