0

我对使用 Sublime Text 3 的 phpcs 编码标准有疑问。

问题概述:

我在每个文档中保存时自动运行 phpcs,它的工作非常出色。我有正确的空格和制表符,但是在我提交工作时会出现问题。

我的提交几乎无法阅读,这是因为我的 PSR2 编码标准在行尾添加了句号和逗号。我用谷歌搜索,找不到如何忽略部分编码标准。

例子:

该图显示了我的提交差异与句号

这是一个问题的原因:

正如您在上图中看到的,图片顶部的绿线是自动编辑的线。问题是办公室中使用 PSR2 编码标准的其他人的程序(Atom、Net Beans、Sublime Text 2)没有将这些句号(和逗号)添加到他们的代码中,所以我的提交真的很混乱。

灵魂:

我真的很想清理我的提交并让 phpcs 忽略这些逗号/句号,所以我的提交只包括我实际更改的代码。任何帮助,将不胜感激。

4

1 回答 1

1

您需要使用适合您项目的规则配置PHP Coding Standards Fixer 。

例如,PHP Coding Standards Fixer 有一个规则phpdoc_short_description,如果启用则意味着“PHPDoc 简短描述应该以句号、感叹号或问号结尾。”。这就是为什么将句号添加到您的 PHPDoc 描述中的原因。

如果您想使用仅禁用特定规则的默认规则,那么您可以.php_cs在项目的根目录中创建一个文件,其中包含以下内容:

<?php

$finder = Symfony\CS\Finder\DefaultFinder::create()
    ->in(__DIR__)
;

return Symfony\CS\Config\Config::create()
    ->fixers(array('-phpdoc_short_description'))
    ->finder($finder)
;

有关规则的完整列表,请参阅PHP Coding Standards Fixer站点。

一些 PHP Coding Standard Fixer 规则:

'-psr0', // [PSR-0] Classes must be in a path that matches their namespace, be at least one namespace deep, and the class name should match the file name.
'-encoding', // [PSR-1] PHP code MUST use only UTF-8 without BOM (remove BOM).
'-short_tag', // [PSR-1] PHP code must use the long <?php ?\> tags or the short-echo <?= ?\> tags; it must not use the other tag variations.
'-braces', // [PSR-2] The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented.
'-elseif', // [PSR-2] The keyword elseif should be used instead of else if so that all control keywords looks like single words.
'-eof_ending', // [PSR-2] A file must always end with a single empty line feed.
'-function_call_space', // [PSR-2] When making a method or function call, there MUST NOT be a space between the method or function name and the opening parenthesis.
'-function_declaration', // [PSR-2] Spaces should be properly placed in a function declaration.
'-indentation', // [PSR-2] Code MUST use an indent of 4 spaces, and MUST NOT use tabs for indenting.
'-line_after_namespace', // [PSR-2] There MUST be one blank line after the namespace declaration.
'-linefeed', // [PSR-2] All PHP files must use the Unix LF (linefeed) line ending.
'-lowercase_constants', // [PSR-2] The PHP constants true, false, and null MUST be in lower case.
'-lowercase_keywords', // [PSR-2] PHP keywords MUST be in lower case.
'-method_argument_space', // [PSR-2] In method arguments and method call, there MUST NOT be a space before each comma and there MUST be one space after each comma.
'-multiple_use', // [PSR-2] There MUST be one use keyword per declaration.
'-parenthesis', // [PSR-2] There MUST NOT be a space after the opening parenthesis. There MUST NOT be a space before the closing parenthesis.
'-php_closing_tag', // [PSR-2] The closing ?\> tag MUST be omitted from files containing only PHP.
'-single_line_after_imports', // [PSR-2] Each namespace use MUST go on its own line and there MUST be one blank line after the use statements block.
'-trailing_spaces', // [PSR-2] Remove trailing whitespace at the end of non-blank lines.
'-visibility', // [PSR-2] Visibility MUST be declared on all properties and methods; abstract and final MUST be declared before the visibility; static MUST be declared after the visibility.
'-array_element_no_space_before_comma', // [symfony] In array declaration, there MUST NOT be a whitespace before each comma.
'-array_element_white_space_after_comma', // [symfony] In array declaration, there MUST be a whitespace after each comma.
'-blankline_after_open_tag', // [symfony] Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline.
'-concat_without_spaces', // [symfony] Concatenation should be used without spaces.
'-double_arrow_multiline_whitespaces', // [symfony] Operator => should not be surrounded by multi-line whitespaces.
'-duplicate_semicolon', // [symfony] Remove duplicated semicolons.
'-empty_return', // [symfony] A return statement wishing to return nothing should be simply "return".
'-extra_empty_lines', // [symfony] Removes extra empty lines.
'-function_typehint_space', // [symfony] Add missing space between function's argument and its typehint.
'-include', // [symfony] Include and file path should be divided with a single space. File path should not be placed under brackets.
'-join_function', // [symfony] Implode function should be used instead of join function.
'-list_commas', // [symfony] Remove trailing commas in list function calls.
'-multiline_array_trailing_comma', // [symfony] PHP multi-line arrays should have a trailing comma.
'-namespace_no_leading_whitespace', // [symfony] The namespace declaration line shouldn't contain leading whitespace.
'-new_with_braces', // [symfony] All instances created with new keyword must be followed by braces.
'-no_blank_lines_after_class_opening', // [symfony] There should be no empty lines after class opening brace.
'-no_empty_lines_after_phpdocs', // [symfony] There should not be blank lines between docblock and the documented element.
'-object_operator', // [symfony] There should not be space before or after object T_OBJECT_OPERATOR.
'-operators_spaces', // [symfony] Binary operators should be surrounded by at least one space.
'-phpdoc_indent', // [symfony] Docblocks should have the same indentation as the documented subject.
'-phpdoc_inline_tag', // [symfony] Fix PHPDoc inline tags, make inheritdoc always inline.
'-phpdoc_no_access', // [symfony] access annotations should be omitted from phpdocs.
'-phpdoc_no_empty_return', // [symfony] return void and @return null annotations should be omitted from phpdocs.
'-phpdoc_no_package', // [symfony] package and @subpackage annotations should be omitted from phpdocs.
'-phpdoc_params', // [symfony] All items of the @param, @throws, @return, @var, and @type phpdoc tags must be aligned vertically.
'-phpdoc_scalar', // [symfony] Scalar types should always be written in the same form. "int", not "integer"; "bool", not "boolean"; "float", not "real" or "double".
'-phpdoc_separation', // [symfony] Annotations in phpdocs should be grouped together so that annotations of the same type immediately follow each other, and annotations of a different type are separated by a single blank line.
'-phpdoc_short_description', // [symfony] Phpdocs short descriptions should end in either a full stop, exclamation mark, or question mark.
'-phpdoc_to_comment', // [symfony] Docblocks should only be used on structural elements.
'-phpdoc_trim', // [symfony] Phpdocs should start and end with content, excluding the very first and last line of the docblocks.
'-phpdoc_type_to_var', // [symfony] type should always be written as @var.
'-phpdoc_types', // [symfony] The correct case must be used for standard PHP types in phpdoc.
'-phpdoc_var_without_name', // [symfony] var and @type annotations should not contain the variable name.
'-pre_increment', // [symfony] Pre incrementation/decrementation should be used if possible.
'-print_to_echo', // [symfony] Converts print language construct to echo if possible.
'-remove_leading_slash_use', // [symfony] Remove leading slashes in use clauses.
'-remove_lines_between_uses', // [symfony] Removes line breaks between use statements.
'-return', // [symfony] An empty line feed should precede a return statement.
'-self_accessor', // [symfony] Inside a classy element "self" should be preferred to the class name itself.
'-short_bool_cast', // [symfony] Short cast bool using double exclamation mark should not be used.
'-single_array_no_trailing_comma', // [symfony] PHP single-line arrays should not have trailing comma.
'-single_blank_line_before_namespace', // [symfony] There should be exactly one blank line before a namespace declaration.
'-single_quote', // [symfony] Convert double quotes to single quotes for simple strings.
'-spaces_before_semicolon', // [symfony] Single-line whitespace before closing semicolon are prohibited.
'-spaces_cast', // [symfony] A single space should be between cast and variable.
'-standardize_not_equal', // [symfony] Replace all <> with !=.
'-ternary_spaces', // [symfony] Standardize spaces around ternary operator.
'-trim_array_spaces', // [symfony] Arrays should be formatted like function/method arguments, without leading or trailing single line space.
'-unalign_double_arrow', // [symfony] Unalign double arrow symbols.
'-unalign_equals', // [symfony] Unalign equals symbols.
'-unary_operators_spaces', // [symfony] Unary operators should be placed adjacent to their operands.
'-unneeded_control_parentheses', // [symfony] Removes unneeded parentheses around control statements.
'-unused_use', // [symfony] Unused use statements must be removed.
'-whitespacy_lines', // [symfony] Remove trailing whitespace at the end of blank lines.
'-align_double_arrow', // [contrib] Align double arrow symbols in consecutive lines.
'-align_equals', // [contrib] Align equals symbols in consecutive lines.
'-concat_with_spaces', // [contrib] Concatenation should be used with at least one whitespace around.
'-echo_to_print', // [contrib] Converts echo language construct to print if possible.
'-ereg_to_preg', // [contrib] Replace deprecated ereg regular expression functions with preg. Warning! This could change code behavior.
'-header_comment', // [contrib] Add, replace or remove header comment.
'-logical_not_operators_with_spaces', // [contrib] Logical NOT operators (!) should have leading and trailing whitespaces.
'-logical_not_operators_with_successor_space', // [contrib] Logical NOT operators (!) should have one trailing whitespace.
'-long_array_syntax', // [contrib] Arrays should use the long syntax.
'-multiline_spaces_before_semicolon', // [contrib] Multi-line whitespace before closing semicolon are prohibited.
'-newline_after_open_tag', // [contrib] Ensure there is no code on the same line as the PHP open tag.
'-no_blank_lines_before_namespace', // [contrib] There should be no blank lines before a namespace declaration.
'-ordered_use', // [contrib] Ordering use statements.
'-php4_constructor', // [contrib] Convert PHP4-style constructors to __construct. Warning! This could change code behavior.
'-php_unit_construct', // [contrib] PHPUnit assertion method calls like "->assertSame(true, )" should be written with dedicated method like "->assertTrue()". Warning! This could change code behavior.
'-php_unit_strict', // [contrib] PHPUnit methods like "assertSame" should be used instead of "assertEquals". Warning! This could change code behavior.
'-phpdoc_order', // [contrib] Annotations in phpdocs should be ordered so that param annotations come first, then throws annotations, then return annotations.
'-phpdoc_var_to_type', // [contrib] var should always be written as @type.
'-short_array_syntax', // [contrib] PHP arrays should use the PHP 5.4 short-syntax.
'-short_echo_tag', // [contrib] Replace short-echo <?= with long format <?php echo syntax.
'-strict', // [contrib] Comparison should be strict. Warning! This could change code behavior.
'-strict_param' // [contrib] Functions should be used with  param. Warning! This could change code behavior.
于 2016-10-17T06:56:40.170 回答