是否有一个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)
{
}
}
?>
感谢您的回答。
答案 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标准也很有用最简单的规则。