Browse Source

Merge branch '1.12'

Conflicts:
	README.rst
	Symfony/CS/Console/Command/FixCommand.php
	Symfony/CS/FileCacheManager.php
	src/Fixer/Phpdoc/PhpdocToCommentFixer.php
Dariusz Ruminski 8 years ago
parent
commit
0ac99f4cd6

+ 8 - 1
.travis.yml

@@ -34,7 +34,14 @@ cache:
 
 before_install:
     - git config --global github.accesstoken 5e7538aa415005c606ea68de2bbbade0409b4b8c
-    - mv $HOME/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini $HOME/xdebug.ini || return 0
+    - |
+      if [ $TRAVIS_TAG ]; then
+          # for tag building for release we don't need to collect code coverage, let us turn off xdebug completely
+          phpenv config-rm xdebug.ini || return 0
+      else
+          # for regular build we care about collecting code coverage, let us turn off xdebug only for installation part
+          mv $HOME/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini $HOME/xdebug.ini || return 0
+      fi
     - travis_retry composer global require hirak/prestissimo
     - 'if [ "$SYMFONY_VERSION" != "" ]; then sed -i "s/\"symfony\/\([^\"]*\)\": \"^2[^\"]*\"/\"symfony\/\1\": \"$SYMFONY_VERSION\"/g" composer.json; fi'
 

+ 171 - 390
README.rst

@@ -50,7 +50,7 @@ Then, just run ``php-cs-fixer``.
 Globally (Composer)
 ~~~~~~~~~~~~~~~~~~~
 
-To install PHP-CS-Fixer, install Composer and issue the following command:
+To install PHP CS Fixer, install Composer and issue the following command:
 
 .. code-block:: bash
 
@@ -175,657 +175,438 @@ automatically fix anything:
 Choose from the list of available fixers:
 
 * **align_double_arrow**
-                         Align double arrow symbols in
-                         consecutive lines.
+   Align double arrow symbols in consecutive lines.
 
 * **align_equals**
-                         Align equals symbols in
-                         consecutive lines.
+   Align equals symbols in consecutive lines.
 
 * **binary_operator_spaces** [@Symfony]
-                         Binary operators should be
-                         surrounded by at least one
-                         space.
+   Binary operators should be surrounded by at least one space.
 
 * **blank_line_after_namespace** [@PSR2, @Symfony]
-                         There MUST be one blank line
-                         after the namespace
-                         declaration.
+   There MUST be one blank line after the namespace declaration.
 
 * **blank_line_after_opening_tag** [@Symfony]
-                         Ensure there is no code on
-                         the same line as the PHP open
-                         tag and it is followed by a
-                         blankline.
+   Ensure there is no code on the same line as the PHP open tag and it is
+   followed by a blankline.
 
 * **blank_line_before_return** [@Symfony]
-                         An empty line feed should
-                         precede a return statement.
+   An empty line feed should precede a return statement.
 
 * **braces** [@PSR2, @Symfony]
-                         The body of each structure
-                         MUST be enclosed by braces.
-                         Braces should be properly
-                         placed. Body of braces should
-                         be properly indented.
+   The body of each structure MUST be enclosed by braces. Braces should be
+   properly placed. Body of braces should be properly indented.
 
 * **cast_spaces** [@Symfony]
-                         A single space should be
-                         between cast and variable.
+   A single space should be between cast and variable.
 
 * **class_definition** [@PSR2, @Symfony]
-                         Whitespace around the key
-                         words of a class, trait or
-                         interfaces definition should
-                         be one space.
+   Whitespace around the key words of a class, trait or interfaces
+   definition should be one space.
 
 * **class_keyword_remove**
-                         Converts ::class keywords to
-                         FQCN strings.
+   Converts ::class keywords to FQCN strings.
 
 * **combine_consecutive_unsets**
-                         Calling unset on multiple
-                         items should be done in one
-                         call.
+   Calling unset on multiple items should be done in one call.
 
 * **concat_with_spaces**
-                         Concatenation should be used
-                         with at least one whitespace
-                         around.
+   Concatenation should be used with at least one whitespace around.
 
 * **concat_without_spaces** [@Symfony]
-                         Concatenation should be used
-                         without spaces.
+   Concatenation should be used without spaces.
 
 * **declare_equal_normalize** [@Symfony]
-                         Equal sign in declare
-                         statement should not be
-                         surrounded by spaces.
+   Equal sign in declare statement should not be surrounded by spaces.
 
 * **declare_strict_types**
-                         Force strict types
-                         declaration in all files.
-                         (Risky fixer!)
+   Force strict types declaration in all files. (Risky fixer!)
 
 * **dir_constant**
-                         Replaces dirname(__FILE__)
-                         expression with equivalent
-                         __DIR__ constant. (Risky
-                         fixer!)
+   Replaces dirname(__FILE__) expression with equivalent __DIR__ constant.
+   (Risky fixer!)
 
 * **echo_to_print**
-                         Converts echo language
-                         construct to print if
-                         possible.
+   Converts echo language construct to print if possible.
 
 * **elseif** [@PSR2, @Symfony]
-                         The keyword elseif should be
-                         used instead of else if so
-                         that all control keywords
-                         look like single words.
+   The keyword elseif should be used instead of else if so that all control
+   keywords look like single words.
 
 * **encoding** [@PSR1, @PSR2, @Symfony]
-                         PHP code MUST use only UTF-8
-                         without BOM (remove BOM).
+   PHP code MUST use only UTF-8 without BOM (remove BOM).
 
 * **ereg_to_preg**
-                         Replace deprecated ereg
-                         regular expression functions
-                         with preg. (Risky fixer!)
+   Replace deprecated ereg regular expression functions with preg. (Risky
+   fixer!)
 
 * **full_opening_tag** [@PSR1, @PSR2, @Symfony]
-                         PHP code must use the long
-                         <?php ?> tags or the
-                         short-echo <?= ?> tags; it
-                         must not use the other tag
-                         variations.
+   PHP code must use the long <?php ?> tags or the short-echo <?= ?> tags;
+   it must not use the other tag variations.
 
 * **function_declaration** [@PSR2, @Symfony]
-                         Spaces should be properly
-                         placed in a function
-                         declaration.
+   Spaces should be properly placed in a function declaration.
 
 * **function_typehint_space** [@Symfony]
-                         Add missing space between
-                         function's argument and its
-                         typehint.
+   Add missing space between function's argument and its typehint.
 
 * **general_phpdoc_annotation_remove**
-                         Configured annotations should
-                         be omitted from phpdocs.
+   Configured annotations should be omitted from phpdocs.
 
 * **general_phpdoc_annotation_rename**
-                         Configured annotations inside
-                         phpdocs should be renamed.
+   Configured annotations inside phpdocs should be renamed.
 
 * **hash_to_slash_comment** [@Symfony]
-                         Single line comments should
-                         use double slashes (//) and
-                         not hash (#).
+   Single line comments should use double slashes (//) and not hash (#).
 
 * **header_comment**
-                         Add, replace or remove header
-                         comment.
+   Add, replace or remove header comment.
 
 * **heredoc_to_nowdoc** [@Symfony]
-                         Convert heredoc to nowdoc if
-                         possible.
+   Convert heredoc to nowdoc if possible.
 
 * **include** [@Symfony]
-                         Include/Require and file path
-                         should be divided with a
-                         single space. File path
-                         should not be placed under
-                         brackets.
+   Include/Require and file path should be divided with a single space.
+   File path should not be placed under brackets.
 
 * **linebreak_after_opening_tag**
-                         Ensure there is no code on
-                         the same line as the PHP open
-                         tag.
+   Ensure there is no code on the same line as the PHP open tag.
 
 * **long_array_syntax**
-                         Arrays should use the long
-                         syntax.
+   Arrays should use the long syntax.
 
 * **lowercase_cast** [@Symfony]
-                         Cast should be written in
-                         lower case.
+   Cast should be written in lower case.
 
 * **lowercase_constants** [@PSR2, @Symfony]
-                         The PHP constants true,
-                         false, and null MUST be in
-                         lower case.
+   The PHP constants true, false, and null MUST be in lower case.
 
 * **lowercase_keywords** [@PSR2, @Symfony]
-                         PHP keywords MUST be in lower
-                         case.
+   PHP keywords MUST be in lower case.
 
 * **mb_str_functions**
-                         Replace non multibyte-safe
-                         functions with corresponding
-                         mb function. (Risky fixer!)
+   Replace non multibyte-safe functions with corresponding mb function.
+   (Risky fixer!)
 
 * **method_argument_space** [@PSR2, @Symfony]
-                         In method arguments and
-                         method call, there MUST NOT
-                         be a space before each comma
-                         and there MUST be one space
-                         after each comma.
+   In method arguments and method call, there MUST NOT be a space before
+   each comma and there MUST be one space after each comma.
 
 * **method_separation** [@Symfony]
-                         Methods must be separated
-                         with one blank line.
+   Methods must be separated with one blank line.
 
 * **modernize_types_casting**
-                         Replaces intval, floatval,
-                         doubleval, strval, boolval
-                         functions calls with
-                         according type casting
-                         operator. (Risky fixer!)
+   Replaces intval, floatval, doubleval, strval, boolval functions calls
+   with according type casting operator. (Risky fixer!)
 
 * **native_function_casing** [@Symfony]
-                         Function defined by PHP
-                         should be called using the
-                         correct casing.
+   Function defined by PHP should be called using the correct casing.
 
 * **new_with_braces** [@Symfony]
-                         All instances created with
-                         new keyword must be followed
-                         by braces.
+   All instances created with new keyword must be followed by braces.
 
 * **no_alias_functions** [@Symfony]
-                         Master functions shall be
-                         used instead of aliases.
+   Master functions shall be used instead of aliases.
 
 * **no_blank_lines_after_class_opening** [@Symfony]
-                         There should be no empty
-                         lines after class opening
-                         brace.
+   There should be no empty lines after class opening brace.
 
 * **no_blank_lines_after_phpdoc** [@Symfony]
-                         There should not be blank
-                         lines between docblock and
-                         the documented element.
+   There should not be blank lines between docblock and the documented
+   element.
 
 * **no_blank_lines_before_namespace**
-                         There should be no blank
-                         lines before a namespace
-                         declaration.
+   There should be no blank lines before a namespace declaration.
 
 * **no_closing_tag** [@PSR2, @Symfony]
-                         The closing ?> tag MUST be
-                         omitted from files containing
-                         only PHP.
+   The closing ?> tag MUST be omitted from files containing only PHP.
 
 * **no_empty_comment** [@Symfony]
-                         There should not be an empty
-                         comments.
+   There should not be an empty comments.
 
 * **no_empty_phpdoc** [@Symfony]
-                         There should not be empty
-                         PHPDoc blocks.
+   There should not be empty PHPDoc blocks.
 
 * **no_empty_statement** [@Symfony]
-                         Remove useless semicolon
-                         statements.
+   Remove useless semicolon statements.
 
 * **no_extra_consecutive_blank_lines** [@Symfony]
-                         Removes extra blank lines
-                         and/or blank lines following
-                         configuration.
+   Removes extra blank lines and/or blank lines following configuration.
 
 * **no_leading_import_slash** [@Symfony]
-                         Remove leading slashes in use
-                         clauses.
+   Remove leading slashes in use clauses.
 
 * **no_leading_namespace_whitespace** [@Symfony]
-                         The namespace declaration
-                         line shouldn't contain
-                         leading whitespace.
+   The namespace declaration line shouldn't contain leading whitespace.
 
 * **no_multiline_whitespace_around_double_arrow** [@Symfony]
-                         Operator => should not be
-                         surrounded by multi-line
-                         whitespaces.
+   Operator => should not be surrounded by multi-line whitespaces.
 
 * **no_multiline_whitespace_before_semicolons**
-                         Multi-line whitespace before
-                         closing semicolon are
-                         prohibited.
+   Multi-line whitespace before closing semicolon are prohibited.
 
 * **no_php4_constructor**
-                         Convert PHP4-style
-                         constructors to __construct.
-                         (Risky fixer!)
+   Convert PHP4-style constructors to __construct. (Risky fixer!)
 
 * **no_short_bool_cast** [@Symfony]
-                         Short cast bool using double
-                         exclamation mark should not
-                         be used.
+   Short cast bool using double exclamation mark should not be used.
 
 * **no_short_echo_tag**
-                         Replace short-echo <?= with
-                         long format <?php echo
-                         syntax.
+   Replace short-echo <?= with long format <?php echo syntax.
 
 * **no_singleline_whitespace_before_semicolons** [@Symfony]
-                         Single-line whitespace before
-                         closing semicolon are
-                         prohibited.
+   Single-line whitespace before closing semicolon are prohibited.
 
 * **no_spaces_after_function_name** [@PSR2, @Symfony]
-                         When making a method or
-                         function call, there MUST NOT
-                         be a space between the method
-                         or function name and the
-                         opening parenthesis.
+   When making a method or function call, there MUST NOT be a space between
+   the method or function name and the opening parenthesis.
 
 * **no_spaces_inside_offset** [@Symfony]
-                         There MUST NOT be spaces
-                         between the offset square
-                         braces and its contained
-                         values.
+   There MUST NOT be spaces between the offset square braces and its
+   contained values.
 
 * **no_spaces_inside_parenthesis** [@PSR2, @Symfony]
-                         There MUST NOT be a space
-                         after the opening
-                         parenthesis. There MUST NOT
-                         be a space before the closing
-                         parenthesis.
+   There MUST NOT be a space after the opening parenthesis. There MUST NOT
+   be a space before the closing parenthesis.
 
 * **no_tab_indentation** [@PSR2, @Symfony]
-                         Code MUST use an indent of 4
-                         spaces, and MUST NOT use tabs
-                         for indenting.
+   Code MUST use an indent of 4 spaces, and MUST NOT use tabs for
+   indenting.
 
 * **no_trailing_comma_in_list_call** [@Symfony]
-                         Remove trailing commas in
-                         list function calls.
+   Remove trailing commas in list function calls.
 
 * **no_trailing_comma_in_singleline_array** [@Symfony]
-                         PHP single-line arrays should
-                         not have trailing comma.
+   PHP single-line arrays should not have trailing comma.
 
 * **no_trailing_whitespace** [@PSR2, @Symfony]
-                         Remove trailing whitespace at
-                         the end of non-blank lines.
+   Remove trailing whitespace at the end of non-blank lines.
 
 * **no_trailing_whitespace_in_comment** [@PSR2, @Symfony]
-                         There MUST be no trailing
-                         spaces inside comments and
-                         phpdocs.
+   There MUST be no trailing spaces inside comments and phpdocs.
 
 * **no_unneeded_control_parentheses** [@Symfony]
-                         Removes unneeded parentheses
-                         around control statements.
+   Removes unneeded parentheses around control statements.
 
 * **no_unreachable_default_argument_value** [@Symfony]
-                         In method arguments there
-                         must not be arguments with
-                         default values before
-                         non-default ones.
+   In method arguments there must not be arguments with default values
+   before non-default ones.
 
 * **no_unused_imports** [@Symfony]
-                         Unused use statements must be
-                         removed.
+   Unused use statements must be removed.
 
 * **no_useless_else**
-                         There should not be useless
-                         else cases.
+   There should not be useless else cases.
 
 * **no_useless_return**
-                         There should not be an empty
-                         return statement at the end
-                         of a function.
+   There should not be an empty return statement at the end of a function.
 
 * **no_whitespace_before_comma_in_array** [@Symfony]
-                         In array declaration, there
-                         MUST NOT be a whitespace
-                         before each comma.
+   In array declaration, there MUST NOT be a whitespace before each comma.
 
 * **no_whitespace_in_blank_line** [@Symfony]
-                         Remove trailing whitespace at
-                         the end of blank lines.
+   Remove trailing whitespace at the end of blank lines.
 
 * **normalize_index_brace** [@Symfony]
-                         Array index should always be
-                         written by using square
-                         braces.
+   Array index should always be written by using square braces.
 
 * **not_operator_with_space**
-                         Logical NOT operators (!)
-                         should have leading and
-                         trailing whitespaces.
+   Logical NOT operators (!) should have leading and trailing whitespaces.
 
 * **not_operator_with_successor_space**
-                         Logical NOT operators (!)
-                         should have one trailing
-                         whitespace.
+   Logical NOT operators (!) should have one trailing whitespace.
 
 * **object_operator_without_whitespace** [@Symfony]
-                         There should not be space
-                         before or after object
-                         T_OBJECT_OPERATOR.
+   There should not be space before or after object T_OBJECT_OPERATOR.
 
 * **ordered_class_elements**
-                         Orders the elements of
-                         classes/interfaces/traits.
+   Orders the elements of classes/interfaces/traits.
 
 * **ordered_imports**
-                         Ordering use statements.
+   Ordering use statements.
 
 * **php_unit_construct** [@Symfony:risky]
-                         PHPUnit assertion method
-                         calls like
-                         "->assertSame(true, $foo)"
-                         should be written with
-                         dedicated method like
-                         "->assertTrue($foo)". (Risky
-                         fixer!)
+   PHPUnit assertion method calls like "->assertSame(true, $foo)" should be
+   written with dedicated method like "->assertTrue($foo)". (Risky fixer!)
 
 * **php_unit_dedicate_assert** [@Symfony:risky]
-                         PHPUnit assertions like
-                         "assertInternalType",
-                         "assertFileExists", should be
-                         used over "assertTrue".
-                         (Risky fixer!)
+   PHPUnit assertions like "assertInternalType", "assertFileExists", should
+   be used over "assertTrue". (Risky fixer!)
 
 * **php_unit_strict**
-                         PHPUnit methods like
-                         "assertSame" should be used
-                         instead of "assertEquals".
-                         (Risky fixer!)
+   PHPUnit methods like "assertSame" should be used instead of
+   "assertEquals". (Risky fixer!)
 
 * **phpdoc_align** [@Symfony]
-                         All items of the @param,
-                         @throws, @return, @var, and
-                         @type phpdoc tags must be
-                         aligned vertically.
+   All items of the @param, @throws, @return, @var, and @type phpdoc tags
+   must be aligned vertically.
 
 * **phpdoc_annotation_without_dot** [@Symfony]
-                         Phpdocs annotation
-                         descriptions should not end
-                         with a full stop.
+   Phpdocs annotation descriptions should not end with a full stop.
 
 * **phpdoc_indent** [@Symfony]
-                         Docblocks should have the
-                         same indentation as the
-                         documented subject.
+   Docblocks should have the same indentation as the documented subject.
 
 * **phpdoc_inline_tag** [@Symfony]
-                         Fix phpdoc inline tags, make
-                         inheritdoc always inline.
+   Fix phpdoc inline tags, make inheritdoc always inline.
 
 * **phpdoc_no_access** [@Symfony]
-                         @access annotations should be
-                         omitted from phpdocs.
+   @access annotations should be omitted from phpdocs.
 
 * **phpdoc_no_empty_return** [@Symfony]
-                         @return void and @return null
-                         annotations should be omitted
-                         from phpdocs.
+   @return void and @return null annotations should be omitted from
+   phpdocs.
 
 * **phpdoc_no_package** [@Symfony]
-                         @package and @subpackage
-                         annotations should be omitted
-                         from phpdocs.
+   @package and @subpackage annotations should be omitted from phpdocs.
 
 * **phpdoc_order**
-                         Annotations in phpdocs should
-                         be ordered so that param
-                         annotations come first, then
-                         throws annotations, then
-                         return annotations.
+   Annotations in phpdocs should be ordered so that param annotations come
+   first, then throws annotations, then return annotations.
 
 * **phpdoc_property**
-                         @property tags should be used
-                         rather than other variants.
+   @property tags should be used rather than other variants.
 
 * **phpdoc_scalar** [@Symfony]
-                         Scalar types should always be
-                         written in the same form.
-                         "int", not "integer"; "bool",
-                         not "boolean"; "float", not
-                         "real" or "double".
+   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.
+   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_single_line_var_spacing** [@Symfony]
-                         Single line @var PHPDoc
-                         should have proper spacing.
+   Single line @var PHPDoc should have proper spacing.
 
 * **phpdoc_summary** [@Symfony]
-                         Phpdocs summary should end in
-                         either a full stop,
-                         exclamation mark, or question
-                         mark.
+   Phpdocs summary should end in either a full stop, exclamation mark, or
+   question mark.
 
 * **phpdoc_to_comment** [@Symfony]
-                         Docblocks should only be used
-                         on structural elements.
+   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.
+   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.
+   @type should always be written as @var.
 
 * **phpdoc_types** [@Symfony]
-                         The correct case must be used
-                         for standard PHP types in
-                         phpdoc.
+   The correct case must be used for standard PHP types in phpdoc.
 
 * **phpdoc_var_to_type**
-                         @var should always be written
-                         as @type.
+   @var should always be written as @type.
 
 * **phpdoc_var_without_name** [@Symfony]
-                         @var and @type annotations
-                         should not contain the
-                         variable name.
+   @var and @type annotations should not contain the variable name.
 
 * **pre_increment** [@Symfony]
-                         Pre
-                         incrementation/decrementation
-                         should be used if possible.
+   Pre incrementation/decrementation should be used if possible.
 
 * **print_to_echo** [@Symfony]
-                         Converts print language
-                         construct to echo if
-                         possible.
+   Converts print language construct to echo if possible.
 
 * **psr0**
-                         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.
-                         (Risky fixer!)
+   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. (Risky
+   fixer!)
 
 * **psr4**
-                         Class names should match the
-                         file name. (Risky fixer!)
+   Class names should match the file name. (Risky fixer!)
 
 * **random_api_migration**
-                         Replaces rand, srand,
-                         getrandmax functions calls
-                         with their mt_* analogs.
-                         (Risky fixer!)
+   Replaces rand, srand, getrandmax functions calls with their mt_*
+   analogs. (Risky fixer!)
 
 * **self_accessor** [@Symfony]
-                         Inside a classy element
-                         "self" should be preferred to
-                         the class name itself.
+   Inside a classy element "self" should be preferred to the class name
+   itself.
 
 * **semicolon_after_instruction**
-                         Instructions must be
-                         terminated with a semicolon.
+   Instructions must be terminated with a semicolon.
 
 * **short_array_syntax**
-                         PHP arrays should use the PHP
-                         5.4 short-syntax.
+   PHP arrays should use the PHP 5.4 short-syntax.
 
 * **short_scalar_cast** [@Symfony]
-                         Cast "(boolean)" and
-                         "(integer)" should be written
-                         as "(bool)" and "(int)".
-                         "(double)" and "(real)" as
-                         "(float)".
+   Cast "(boolean)" and "(integer)" should be written as "(bool)" and
+   "(int)". "(double)" and "(real)" as "(float)".
 
 * **silenced_deprecation_error** [@Symfony:risky]
-                         Ensures deprecation notices
-                         are silenced. (Risky fixer!)
+   Ensures deprecation notices are silenced. (Risky fixer!)
 
 * **simplified_null_return**
-                         A return statement wishing to
-                         return nothing should be
-                         simply "return".
+   A return statement wishing to return nothing should be simply "return".
 
 * **single_blank_line_at_eof** [@PSR2, @Symfony]
-                         A file must always end with a
-                         single empty line feed.
+   A file must always end with a single empty line feed.
 
 * **single_blank_line_before_namespace** [@Symfony]
-                         There should be exactly one
-                         blank line before a namespace
-                         declaration.
+   There should be exactly one blank line before a namespace declaration.
 
 * **single_class_element_per_statement** [@PSR2, @Symfony]
-                         There MUST NOT be more than
-                         one property or constant
-                         declared per statement.
+   There MUST NOT be more than one property or constant declared per
+   statement.
 
 * **single_import_per_statement** [@PSR2, @Symfony]
-                         There MUST be one use keyword
-                         per declaration.
+   There MUST be one use keyword per declaration.
 
 * **single_line_after_imports** [@PSR2, @Symfony]
-                         Each namespace use MUST go on
-                         its own line and there MUST
-                         be one blank line after the
-                         use statements block.
+   Each namespace use MUST go on its own line and there MUST be one blank
+   line after the use statements block.
 
 * **single_quote** [@Symfony]
-                         Convert double quotes to
-                         single quotes for simple
-                         strings.
+   Convert double quotes to single quotes for simple strings.
 
 * **space_after_semicolon** [@Symfony]
-                         Fix whitespace after a
-                         semicolon.
+   Fix whitespace after a semicolon.
 
 * **standardize_not_equals** [@Symfony]
-                         Replace all <> with !=.
+   Replace all <> with !=.
 
 * **strict_comparison**
-                         Comparison should be strict.
-                         (Risky fixer!)
+   Comparison should be strict. (Risky fixer!)
 
 * **strict_param**
-                         Functions should be used with
-                         $strict param. (Risky fixer!)
+   Functions should be used with $strict param. (Risky fixer!)
 
 * **switch_case_semicolon_to_colon** [@PSR2, @Symfony]
-                         A case should be followed by
-                         a colon and not a semicolon.
+   A case should be followed by a colon and not a semicolon.
 
 * **switch_case_space** [@PSR2, @Symfony]
-                         Removes extra spaces between
-                         colon and case value.
+   Removes extra spaces between colon and case value.
 
 * **ternary_operator_spaces** [@Symfony]
-                         Standardize spaces around
-                         ternary operator.
+   Standardize spaces around ternary operator.
 
 * **trailing_comma_in_multiline_array** [@Symfony]
-                         PHP multi-line arrays should
-                         have a trailing comma.
+   PHP multi-line arrays should have a trailing comma.
 
 * **trim_array_spaces** [@Symfony]
-                         Arrays should be formatted
-                         like function/method
-                         arguments, without leading or
-                         trailing single line space.
+   Arrays should be formatted like function/method arguments, without
+   leading or trailing single line space.
 
 * **unalign_double_arrow** [@Symfony]
-                         Unalign double arrow symbols.
+   Unalign double arrow symbols.
 
 * **unalign_equals** [@Symfony]
-                         Unalign equals symbols.
+   Unalign equals symbols.
 
 * **unary_operator_spaces** [@Symfony]
-                         Unary operators should be
-                         placed adjacent to their
-                         operands.
+   Unary operators should be placed adjacent to their operands.
 
 * **unix_line_endings** [@PSR2, @Symfony]
-                         All PHP files must use the
-                         Unix LF line ending.
+   All PHP files must use the Unix LF line ending.
 
 * **visibility_required** [@PSR2, @Symfony]
-                         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.
+   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.
 
 * **whitespace_after_comma_in_array** [@Symfony]
-                         In array declaration, there
-                         MUST be a whitespace after
-                         each comma.
+   In array declaration, there MUST be a whitespace after each comma.
 
 
 The ``--dry-run`` option displays the files that need to be

+ 22 - 7
doc/COOKBOOK-FIXERS.md

@@ -21,8 +21,8 @@ contribute, and to detect bugs ([Linus'
 Law](http://en.wikipedia.org/wiki/Linus%27s_Law)).
 
 If possible, try to get acquainted with the public interface for the
-[Symfony/CS/Tokenizer/Tokens.php](Symfony/CS/Tokenizer/Tokens.php)
-and [Symfony/CS/Tokenizer/Token.php](Symfony/CS/Tokenizer/Token.php)
+[Tokens class](Symfony/CS/Tokenizer/Tokens.php)
+and [Token class](Symfony/CS/Tokenizer/Token.php)
 classes.
 
 ## Assumptions
@@ -30,9 +30,8 @@ classes.
 * You are familiar with Test Driven Development.
 * Forked FriendsOfPHP/PHP-CS-Fixer into your own Github Account.
 * Cloned your forked repository locally.
-* Downloaded PHP CS Fixer and have executed `php composer.phar
-install`.
-* You have read [`CONTRIBUTING.md`](CONTRIBUTING.md)
+* Installed the dependencies of PHP CS Fixer using [Composer](https://getcomposer.org/).
+* You have read [`CONTRIBUTING.md`](CONTRIBUTING.md).
 
 ## Step by step
 
@@ -69,6 +68,21 @@ use PhpCsFixer\Tokenizer\Tokens;
  */
 final class RemoveCommentsFixer extends AbstractFixer
 {
+    /**
+     * {@inheritdoc}
+     */
+    public function fix(\SplFileInfo $file, $content)
+    {
+        // Add the fixing logic of the fixer here.
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDescription()
+    {
+        // Return a short description of the Fixer, it will be used in the README.rst.
+    }
 }
 ```
 
@@ -123,7 +137,7 @@ The files are created, one thing is still missing though: we need to
 update the README.md. Fortunately, PHP CS Fixer can help you here.
 Execute the following command in your command shell:
 
-`# php php-cs-fixer readme > README.rst`
+`$ php php-cs-fixer readme > README.rst`
 
 ### Step 2 - Using tests to define fixers behavior
 
@@ -262,7 +276,8 @@ class RemoveCommentsFixer extends AbstractFixer
 }
 ```
 
-Run `vendor/bin/phpunit`. You are going to see that the tests fails.
+Run `$ phpunit Symfony/CS/Tests/Fixer/Contrib/RemoveCommentsFixerTest.php`.
+You are going to see that the tests fails.
 
 ### Break
 Now we have pretty much a cradle to work with. A file with a failing

+ 4 - 15
src/Console/Command/FixCommand.php

@@ -407,7 +407,6 @@ EOF
     protected function getFixersHelp()
     {
         $help = '';
-        $maxName = 0;
         $fixerFactory = new FixerFactory();
         $fixers = $fixerFactory->registerBuiltInFixers()->getFixers();
 
@@ -419,12 +418,6 @@ EOF
             }
         );
 
-        foreach ($fixers as $fixer) {
-            if (strlen($fixer->getName()) > $maxName) {
-                $maxName = strlen($fixer->getName());
-            }
-        }
-
         $ruleSets = array();
         foreach (RuleSet::create()->getSetDefinitionNames() as $setName) {
             $ruleSets[$setName] = new RuleSet(array($setName => true));
@@ -452,16 +445,12 @@ EOF
                 $description .= ' (Risky fixer!)';
             }
 
+            $description = str_replace("\n", "\n   ", wordwrap($description, 72, "\n"));
+
             if (!empty($sets)) {
-                $chunks = explode("\n", wordwrap(sprintf("[%s]\n%s", implode(', ', $sets), $description), 72 - $maxName, "\n"));
-                $help .= sprintf(" * <comment>%s</comment>%s %s\n", $fixer->getName(), str_repeat(' ', $maxName - strlen($fixer->getName())), array_shift($chunks));
+                $help .= sprintf(" * <comment>%s</comment> [%s]\n   %s\n", $fixer->getName(), implode(', ', $sets), $description);
             } else {
-                $chunks = explode("\n", wordwrap(sprintf("\n%s", $description), 72 - $maxName, "\n"));
-                $help .= sprintf(" * <comment>%s</comment>%s\n", $fixer->getName(), array_shift($chunks));
-            }
-
-            while ($c = array_shift($chunks)) {
-                $help .= str_repeat(' ', $maxName + 4).$c."\n";
+                $help .= sprintf(" * <comment>%s</comment>\n   %s\n", $fixer->getName(), $description);
             }
 
             if ($count !== $i) {

+ 1 - 1
src/Console/Command/ReadmeCommand.php

@@ -92,7 +92,7 @@ Then, just run ``php-cs-fixer``.
 Globally (Composer)
 ~~~~~~~~~~~~~~~~~~~
 
-To install PHP-CS-Fixer, install Composer and issue the following command:
+To install PHP CS Fixer, install Composer and issue the following command:
 
 .. code-block:: bash
 

+ 1 - 1
src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php

@@ -42,7 +42,7 @@ final class NoUnneededControlParenthesesFixer extends AbstractFixer
         'clone' => array('lookupTokens' => T_CLONE, 'neededSuccessors' => array(';', ':', ',', ')'), 'forbiddenContents' => array('?', ':')),
         'continue' => array('lookupTokens' => T_CONTINUE, 'neededSuccessors' => array(';')),
         'echo_print' => array('lookupTokens' => array(T_ECHO, T_PRINT), 'neededSuccessors' => array(';', array(T_CLOSE_TAG))),
-        'return' => array('lookupTokens' => T_RETURN, 'neededSuccessors' => array(';')),
+        'return' => array('lookupTokens' => T_RETURN, 'neededSuccessors' => array(';', array(T_CLOSE_TAG))),
         'switch_case' => array('lookupTokens' => T_CASE, 'neededSuccessors' => array(';', ':')),
     );
 

+ 1 - 5
src/Fixer/Phpdoc/PhpdocToCommentFixer.php

@@ -203,10 +203,6 @@ final class PhpdocToCommentFixer extends AbstractFixer
     {
         $nextIndex = $tokens->getNextMeaningfulToken($variableIndex);
 
-        if (!$tokens[$nextIndex]->equals('=')) {
-            return false;
-        }
-
-        return false !== strpos($docsToken->getContent(), $tokens[$variableIndex]->getContent());
+        return $tokens[$nextIndex]->equals('=');
     }
 }

+ 8 - 0
tests/Fixer/ControlStructure/NoUnneededControlParenthesesFixerTest.php

@@ -311,6 +311,14 @@ final class NoUnneededControlParenthesesFixerTest extends AbstractFixerTestCase
                 return(2);
                 ',
             ),
+            array(
+                '<?php
+                return 2?>
+                ',
+                '<?php
+                return(2)?>
+                ',
+            ),
             array(
                 '<?php
                 switch ($a) {

+ 60 - 5
tests/Fixer/Phpdoc/PhpdocToCommentFixerTest.php

@@ -181,9 +181,35 @@ $first = true;// needed because by default first docblock is never fixed.
 /**
  * Do not convert this
  *
- * @var bool $local
+ * @var int
  */
-$local = true;
+$a = require "require.php";
+
+/**
+ * Do not convert this
+ *
+ * @var int
+ */
+$b = require_once "require_once.php";
+
+/**
+ * Do not convert this
+ *
+ * @var int
+ */
+$c = include "include.php";
+
+/**
+ * Do not convert this
+ *
+ * @var int
+ */
+$d = include_once "include_once.php";
+
+/**
+ * @var Composer\Autoload\ClassLoader $loader
+ */
+$loader = require_once __DIR__."/vendor/autoload.php";
 ',
         );
 
@@ -191,16 +217,45 @@ $local = true;
             '<?php
 $first = true;// needed because by default first docblock is never fixed.
 
-/*
- * This should be a normal comment
+/**
+ * @var ClassLoader $loader
+ */
+$loader = require_once __DIR__."/../app/autoload.php";
+',
+        );
+
+        $cases[] = array(
+            '<?php
+$first = true;// needed because by default first docblock is never fixed.
+
+/**
+ * Do not convert this
+ *
+ * @var Foo
+ */
+$foo = createFoo();
+',
+        );
+
+        $cases[] = array(
+            '<?php
+$first = true;// needed because by default first docblock is never fixed.
+
+/**
+ * Do not convert this
+ *
+ * @var bool $local
  */
 $local = true;
 ',
+        );
+
+        $cases[] = array(
             '<?php
 $first = true;// needed because by default first docblock is never fixed.
 
 /**
- * This should be a normal comment
+ * Comment
  */
 $local = true;
 ',

+ 28 - 0
tests/Fixtures/Integration/misc/phpdoc_to_comment,phpdoc_var_without_name.test

@@ -0,0 +1,28 @@
+--TEST--
+Integration of fixers: phpdoc_to_comment,phpdoc_var_without_name.
+--CONFIG--
+{
+    "phpdoc_to_comment": true,
+    "phpdoc_var_without_name": true
+}
+--SETTINGS--
+checkPriority=false
+--EXPECT--
+<?php
+
+$first = true;// needed because by default first docblock is never fixed.
+
+/**
+ * @var ClassLoader
+ */
+$loader = require_once __DIR__.'/../app/autoload.php';
+
+--INPUT--
+<?php
+
+$first = true;// needed because by default first docblock is never fixed.
+
+/**
+ * @var ClassLoader $loader
+ */
+$loader = require_once __DIR__.'/../app/autoload.php';