ongr / ongr-strict-standard
基于 Squiz 标准的 PSR-2 代码严格 PHPCS 标准
Requires
- php: >=5.4
- squizlabs/php_codesniffer: ~2.0
Requires (Dev)
- phpunit/phpunit: ~4.2
This package is not auto-updated.
Last update: 2024-09-14 16:13:36 UTC
README
此标准提供了对空白、注释样式和 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)
配置此标准
- 转到设置 > 检查 > PHP > PHP 代码检查验证。
- 标记复选框“PHP 代码检查验证”为“开”。
- 选择自定义标准。
- 定位 vendor/ongr/ongr-strict-standard/Ongr 标准目录,按“确定”。
每次编辑 PHP 文件时都会自动验证代码。
许可
此捆绑包受 MIT 许可证的约束。请参阅捆绑包中的完整许可证 LICENSE
文件。