ongr/ongr-strict-standard

基于 Squiz 标准的 PSR-2 代码严格 PHPCS 标准

v2.1.2 2015-06-19 11:20 UTC

README

https://travis-ci.org/ongr-io/ongr-strict-standard.svg?branch=master

此标准提供了对空白、注释样式和 PHPDoc 的严格代码风格检查。它与 PSR-2 兼容,强制执行良好的编程和文档实践。

示例

是否想标准化团队的代码风格?这是一个 PSR-2 兼容的代码

<?php
namespace Project\MyClass ;

use Foo;

/**
 *  this class has method

 */
class MyClass
{

    public function foo($param)
    {
        $a = $param *  2;
        return $a+1;

    }
}

不再有这种代码!

经过 Ongr Strict Standard 验证后

----------------------------------------------------------------------
FOUND 10 ERRORS AFFECTING 8 LINES
----------------------------------------------------------------------
1 | ERROR | [ ] There must be one blank line after the php open tag
|       |     and no whitespaces
2 | ERROR | [x] Space found before semicolon; expected "MyClass;"
|       |     but found "MyClass ;"
10 | ERROR | [ ] Class name doesn't match filename; expected "class
|       |     testas"
11 | ERROR | [ ] Expected no blank lines after an opening brace, 1
|       |     found
13 | ERROR | [ ] Missing function doc comment
15 | ERROR | [x] Expected 1 space after "*"; 2 found
16 | ERROR | [ ] Missing blank line before return statement
16 | ERROR | [x] Expected 1 space before "+"; 0 found
16 | ERROR | [x] Expected 1 space after "+"; 0 found
18 | ERROR | [x] Expected no blank lines before closing function
|       |     brace; 1 found
----------------------------------------------------------------------
PHPCBF CAN FIX THE 5 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------

Time: 68ms; Memory: 5.75Mb

功能

  • 几乎标准化了所有地方的空白。例如,方法之间、运算符周围的空格、语句的缩进等。
  • 除了 PHPUnit 测试类之外,所有地方都需要 类简短描述
  • 除了设置器/获取器和一些魔术方法之外,所有方法都需要 方法简短描述
  • 注释以 大写字母 开头,并以适当的标点符号结尾。这表明了适当的文档和 减少了懒惰
  • 需要 短数组语法
  • 在 PHPDoc 中对所有参数需要 类型提示。必要时需要 @return@throws 标签。
  • 代码在赋值和数组定义中 不得对齐
  • 字符串应仅使用双引号,除非有原因(例如,变量插值等)。

要求

  • PHP >=5.4
  • CodeSniffer 2.x

致谢

我们的工作仅基于 Squiz Labs Squiz 编码标准opensky Symfony2 编码标准

安装

Composer

{
   "require-dev": {
      "ongr/ongr-strict-standard": "2.*",
      "squizlabs/php_codesniffer": "2.*"
   }
}

或者,您可以选择将其全局安装到所有项目中,在 ~/.composer/composer.json 中。

然后:composer global update。

警告:如果您计划开发,则应将源代码放在 Ongr 目录中。

例如,在克隆时添加目标目录

git clone git@github.com:<username>/ongr-strict-standard.git ONGR

运行

vendor/bin/phpcs -p --standard=/home/<user>/.composer/vendor/ongr/ongr-strict-standard/Ongr --ignore=vendor/,Tests/app/,Resources/public/ ./

注意:不要在 HOME 参数中使用 ~,因为 PHPCS 不会展开它。

注意:IDE 也支持在编辑器的源代码上直接运行 Code Sniffer 和添加错误注释(例如 PHPStorm)。请参阅您 IDE 的文档了解如何从自定义目录添加标准。

PHPStorm 助手

配置 PHPCS:[http://www.jetbrains.com/phpstorm/webhelp/using-php-code-sniffer-tool.html](http://www.jetbrains.com/phpstorm/webhelp/using-php-code-sniffer-tool.html)

配置此标准

  1. 转到设置 > 检查 > PHP > PHP 代码检查验证。
  2. 标记复选框“PHP 代码检查验证”为“开”。
  3. 选择自定义标准。
  4. 定位 vendor/ongr/ongr-strict-standard/Ongr 标准目录,按“确定”。

每次编辑 PHP 文件时都会自动验证代码。

许可

此捆绑包受 MIT 许可证的约束。请参阅捆绑包中的完整许可证 LICENSE 文件。