123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779 |
- PHP Coding Standards Fixer
- ==========================
- The PHP Coding Standards Fixer tool fixes *most* issues in your code when you
- want to follow the PHP coding standards as defined in the PSR-1 and PSR-2
- documents and many more.
- If you are already using a linter to identify coding standards problems in your
- code, you know that fixing them by hand is tedious, especially on large
- projects. This tool does not only detect them, but also fixes them for you.
- Requirements
- ------------
- PHP needs to be a minimum version of PHP 5.3.6.
- Installation
- ------------
- Locally
- ~~~~~~~
- Download the `php-cs-fixer.phar`_ file and store it somewhere on your computer.
- Globally (manual)
- ~~~~~~~~~~~~~~~~~
- You can run these commands to easily access ``php-cs-fixer`` from anywhere on
- your system:
- .. code-block:: bash
- $ wget https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v1.12.2/php-cs-fixer.phar -O php-cs-fixer
- or with curl:
- .. code-block:: bash
- $ curl -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v1.12.2/php-cs-fixer.phar -o php-cs-fixer
- then:
- .. code-block:: bash
- $ sudo chmod a+x php-cs-fixer
- $ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
- Then, just run ``php-cs-fixer``.
- Globally (Composer)
- ~~~~~~~~~~~~~~~~~~~
- To install PHP CS Fixer, install Composer and issue the following command:
- .. code-block:: bash
- $ ./composer.phar global require friendsofphp/php-cs-fixer
- Then make sure you have ``~/.composer/vendor/bin`` in your ``PATH`` and
- you're good to go:
- .. code-block:: bash
- $ export PATH="$PATH:$HOME/.composer/vendor/bin"
- Globally (homebrew)
- ~~~~~~~~~~~~~~~~~~~
- PHP-CS-Fixer is part of the homebrew-php project. Follow the installation
- instructions at https://github.com/homebrew/homebrew-php if you don't
- already have it.
- .. code-block:: bash
- $ brew install homebrew/php/php-cs-fixer
- Update
- ------
- Locally
- ~~~~~~~
- The ``self-update`` command tries to update ``php-cs-fixer`` itself:
- .. code-block:: bash
- $ php php-cs-fixer.phar self-update
- Globally (manual)
- ~~~~~~~~~~~~~~~~~
- You can update ``php-cs-fixer`` through this command:
- .. code-block:: bash
- $ sudo php-cs-fixer self-update
- Globally (Composer)
- ~~~~~~~~~~~~~~~~~~~
- You can update ``php-cs-fixer`` through this command:
- .. code-block:: bash
- $ ./composer.phar global update friendsofphp/php-cs-fixer
- Globally (homebrew)
- ~~~~~~~~~~~~~~~~~~~
- You can update ``php-cs-fixer`` through this command:
- .. code-block:: bash
- $ brew upgrade php-cs-fixer
- Usage
- -----
- The ``fix`` command tries to fix as much coding standards
- problems as possible on a given file or files in a given directory and its subdirectories:
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/dir
- $ php php-cs-fixer.phar fix /path/to/file
- The ``--format`` option for the output format. Supported formats are ``txt`` (default one), ``json``, ``xml`` and ``junit``.
- NOTE: When using ``junit`` format report generates in accordance with JUnit xml schema from Jenkins (see docs/junit-10.xsd).
- The ``--verbose`` option will show the applied fixers. When using the ``txt`` format it will also displays progress notifications.
- The ``--rules`` option limits the rules to apply on the
- project:
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/project --rules=@PSR2
- By default, all PSR fixers are run.
- The ``--rules`` option lets you choose the exact fixers to
- apply (the fixer names must be separated by a comma):
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/dir --rules=unix_line_endings,full_opening_tag,no_tab_indentation
- You can also blacklist the fixers you don't want by placing a dash in front of the fixer name, if this is more convenient,
- using ``-name_of_fixer``:
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/dir --rules=-full_opening_tag,-no_tab_indentation
- When using combinations of exact and blacklist fixers, applying exact fixers along with above blacklisted results:
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/project --rules=@Symfony,-@PSR1,-blank_line_before_return,strict_comparison
- A combination of ``--dry-run`` and ``--diff`` will
- display a summary of proposed fixes, leaving your files unchanged.
- The ``--allow-risky`` option allows you to set whether riskys fixer may run. Default value is taken from config file.
- Risky fixer is a fixer, which could change code behaviour. By default no risky fixers are run.
- The command can also read from standard input, in which case it won't
- automatically fix anything:
- .. code-block:: bash
- $ cat foo.php | php php-cs-fixer.phar fix --diff -
- Choose from the list of available fixers:
- * **align_double_arrow**
- Align double arrow symbols in consecutive lines.
- * **align_equals**
- Align equals symbols in consecutive lines.
- * **binary_operator_spaces** [@Symfony]
- 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.
- * **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.
- * **blank_line_before_return** [@Symfony]
- 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.
- * **cast_spaces** [@Symfony]
- 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.
- * **class_keyword_remove**
- Converts ::class keywords to FQCN strings.
- * **combine_consecutive_unsets**
- Calling unset on multiple items should be done in one call.
- * **concat_with_spaces**
- Concatenation should be used with at least one whitespace around.
- * **concat_without_spaces** [@Symfony]
- Concatenation should be used without spaces.
- * **declare_equal_normalize** [@Symfony]
- Equal sign in declare statement should not be surrounded by spaces.
- * **declare_strict_types**
- Force strict types declaration in all files. (Risky fixer!)
- * **dir_constant**
- Replaces dirname(__FILE__) expression with equivalent __DIR__ constant.
- (Risky fixer!)
- * **echo_to_print**
- 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.
- * **encoding** [@PSR1, @PSR2, @Symfony]
- PHP code MUST use only UTF-8 without BOM (remove BOM).
- * **ereg_to_preg**
- 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.
- * **function_declaration** [@PSR2, @Symfony]
- Spaces should be properly placed in a function declaration.
- * **function_typehint_space** [@Symfony]
- Add missing space between function's argument and its typehint.
- * **general_phpdoc_annotation_remove**
- Configured annotations should be omitted from phpdocs.
- * **general_phpdoc_annotation_rename**
- Configured annotations inside phpdocs should be renamed.
- * **hash_to_slash_comment** [@Symfony]
- Single line comments should use double slashes (//) and not hash (#).
- * **header_comment**
- Add, replace or remove header comment.
- * **heredoc_to_nowdoc** [@Symfony]
- 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.
- * **linebreak_after_opening_tag**
- Ensure there is no code on the same line as the PHP open tag.
- * **long_array_syntax**
- Arrays should use the long syntax.
- * **lowercase_cast** [@Symfony]
- Cast should be written in lower case.
- * **lowercase_constants** [@PSR2, @Symfony]
- The PHP constants true, false, and null MUST be in lower case.
- * **lowercase_keywords** [@PSR2, @Symfony]
- PHP keywords MUST be in lower case.
- * **mb_str_functions**
- 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.
- * **method_separation** [@Symfony]
- 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!)
- * **native_function_casing** [@Symfony]
- 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.
- * **no_alias_functions** [@Symfony]
- 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.
- * **no_blank_lines_after_phpdoc** [@Symfony]
- 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.
- * **no_closing_tag** [@PSR2, @Symfony]
- The closing ?> tag MUST be omitted from files containing only PHP.
- * **no_empty_comment** [@Symfony]
- There should not be an empty comments.
- * **no_empty_phpdoc** [@Symfony]
- There should not be empty PHPDoc blocks.
- * **no_empty_statement** [@Symfony]
- Remove useless semicolon statements.
- * **no_extra_consecutive_blank_lines** [@Symfony]
- Removes extra blank lines and/or blank lines following configuration.
- * **no_leading_import_slash** [@Symfony]
- Remove leading slashes in use clauses.
- * **no_leading_namespace_whitespace** [@Symfony]
- 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.
- * **no_multiline_whitespace_before_semicolons**
- Multi-line whitespace before closing semicolon are prohibited.
- * **no_php4_constructor**
- Convert PHP4-style constructors to __construct. (Risky fixer!)
- * **no_short_bool_cast** [@Symfony]
- Short cast bool using double exclamation mark should not be used.
- * **no_short_echo_tag**
- Replace short-echo <?= with long format <?php echo syntax.
- * **no_singleline_whitespace_before_semicolons** [@Symfony]
- 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.
- * **no_spaces_around_offset** [@Symfony]
- There MUST NOT be spaces around offset braces.
- * **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.
- * **no_tab_indentation** [@PSR2, @Symfony]
- 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.
- * **no_trailing_comma_in_singleline_array** [@Symfony]
- PHP single-line arrays should not have trailing comma.
- * **no_trailing_whitespace** [@PSR2, @Symfony]
- 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.
- * **no_unneeded_control_parentheses** [@Symfony]
- 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.
- * **no_unused_imports** [@Symfony]
- Unused use statements must be removed.
- * **no_useless_else**
- There should not be useless else cases.
- * **no_useless_return**
- 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.
- * **no_whitespace_in_blank_line** [@Symfony]
- Remove trailing whitespace at the end of blank lines.
- * **normalize_index_brace** [@Symfony]
- Array index should always be written by using square braces.
- * **not_operator_with_space**
- Logical NOT operators (!) should have leading and trailing whitespaces.
- * **not_operator_with_successor_space**
- 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.
- * **ordered_class_elements**
- Orders the elements of classes/interfaces/traits.
- * **ordered_imports**
- 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!)
- * **php_unit_dedicate_assert** [@Symfony:risky]
- 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!)
- * **phpdoc_align** [@Symfony]
- 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.
- * **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_order**
- 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.
- * **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_single_line_var_spacing** [@Symfony]
- 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.
- * **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_to_type**
- @var should always be written as @type.
- * **phpdoc_var_without_name** [@Symfony]
- @var and @type annotations should not contain the variable name.
- * **pow_to_exponentiation** [@PHP56Migration, @PHP70Migration, @PHP71Migration]
- Converts 'pow()' to '**'. (Risky fixer!)
- * **pre_increment** [@Symfony]
- Pre incrementation/decrementation should be used if possible.
- * **print_to_echo** [@Symfony]
- 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!)
- * **psr4**
- Class names should match the file name. (Risky fixer!)
- * **random_api_migration** [@PHP70Migration, @PHP71Migration]
- Replaces rand, srand, getrandmax functions calls with their mt_*
- analogs. (Risky fixer!)
- * **return_type_declaration** [@Symfony]
- There should be no space before colon and one space after it in return
- type declaration.
- * **self_accessor** [@Symfony]
- Inside a classy element "self" should be preferred to the class name
- itself.
- * **semicolon_after_instruction**
- Instructions must be terminated with a semicolon.
- * **short_array_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)".
- * **silenced_deprecation_error** [@Symfony:risky]
- Ensures deprecation notices are silenced. (Risky fixer!)
- * **simplified_null_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.
- * **single_blank_line_before_namespace** [@Symfony]
- 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.
- * **single_import_per_statement** [@PSR2, @Symfony]
- 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.
- * **single_quote** [@Symfony]
- Convert double quotes to single quotes for simple strings.
- * **space_after_semicolon** [@Symfony]
- Fix whitespace after a semicolon.
- * **standardize_not_equals** [@Symfony]
- Replace all <> with !=.
- * **strict_comparison**
- Comparison should be strict. (Risky fixer!)
- * **strict_param**
- 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.
- * **switch_case_space** [@PSR2, @Symfony]
- Removes extra spaces between colon and case value.
- * **ternary_operator_spaces** [@Symfony]
- Standardize spaces around ternary operator.
- * **trailing_comma_in_multiline_array** [@Symfony]
- 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.
- * **unalign_double_arrow** [@Symfony]
- Unalign double arrow symbols.
- * **unalign_equals** [@Symfony]
- Unalign equals symbols.
- * **unary_operator_spaces** [@Symfony]
- Unary operators should be placed adjacent to their operands.
- * **unix_line_endings** [@PSR2, @Symfony]
- All PHP files must use the Unix LF line ending.
- * **visibility_required** [@PSR2, @Symfony, @PHP71Migration]
- 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.
- The ``--dry-run`` option displays the files that need to be
- fixed but without actually modifying them:
- .. code-block:: bash
- $ php php-cs-fixer.phar fix /path/to/code --dry-run
- Instead of using command line options to customize the fixer, you can save the
- project configuration in a ``.php_cs.dist`` file in the root directory
- of your project. The file must return an instance of ``PhpCsFixer\ConfigInterface``,
- which lets you configure the rules, the files and directories that
- need to be analyzed. You may also create ``.php_cs`` file, which is
- the local configuration that will be used instead of the project configuration. It
- is a good practice to add that file into your ``.gitignore`` file.
- With the ``--config`` option you can specify the path to the
- ``.php_cs`` file.
- The example below will add two fixers to the default list of PSR2 set fixers:
- .. code-block:: php
- <?php
- $finder = PhpCsFixer\Finder::create()
- ->exclude('somedir')
- ->notPath('src/Symfony/Component/Translation/Tests/fixtures/resources.php')
- ->in(__DIR__)
- ;
- return PhpCsFixer\Config::create()
- ->setRules(array(
- '@PSR2' => true,
- 'strict_param' => true,
- 'short_array_syntax' => true,
- ))
- ->finder($finder)
- ;
- **NOTE**: ``exclude`` will work only for directories, so if you need to exclude file, try ``notPath``.
- See `Symfony\\Finder <http://symfony.com/doc/current/components/finder.html>`_
- online documentation for other `Finder` methods.
- You may also use a blacklist for the Fixers instead of the above shown whitelist approach.
- The following example shows how to use all ``Symfony`` Fixers but the ``full_opening_tag`` Fixer.
- .. code-block:: php
- <?php
- $finder = PhpCsFixer\Finder::create()
- ->exclude('somedir')
- ->in(__DIR__)
- ;
- return PhpCsFixer\Config::create()
- ->setRules(array(
- '@Symfony' => true,
- 'full_opening_tag' => false,
- ))
- ->finder($finder)
- ;
- By using ``--using-cache`` option with yes or no you can set if the caching
- mechanism should be used.
- Caching
- -------
- The caching mechanism is enabled by default. This will speed up further runs by
- fixing only files that were modified since the last run. The tool will fix all
- files if the tool version has changed or the list of fixers has changed.
- Cache is supported only for tool downloaded as phar file or installed via
- composer.
- Cache can be disabled via ``--using-cache`` option or config file:
- .. code-block:: php
- <?php
- return PhpCsFixer\Config::create()
- ->setUsingCache(false)
- ;
- Cache file can be specified via ``--cache-file`` option or config file:
- .. code-block:: php
- <?php
- return PhpCsFixer\Config::create()
- ->setCacheFile(__DIR__.'/.php_cs.cache')
- ;
- Using PHP CS Fixer on CI
- ------------------------
- Require ``friendsofphp/php-cs-fixer`` as a `dev`` dependency:
- .. code-block:: bash
- $ ./composer.phar require --dev friendsofphp/php-cs-fixer
- Then, add the following command to your CI:
- .. code-block:: bash
- $ vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run --using-cache=no --path-mode=intersection `git diff --name-only --diff-filter=ACMRTUXB $COMMIT_RANGE`
- Where ``$COMMIT_RANGE`` is your range of commits, eg ``$TRAVIS_COMMIT_RANGE`` or ``HEAD~..HEAD``.
- Exit codes
- ----------
- Exit code is build using following bit flags:
- * 0 OK
- * 4 Some files have invalid syntax (only in dry-run mode)
- * 8 Some files need fixing (only in dry-run mode)
- * 16 Configuration error of the application
- * 32 Configuration error of a Fixer
- * 64 Exception raised within the application
- Helpers
- -------
- Dedicated plugins exist for:
- * `Atom`_
- * `NetBeans`_
- * `PhpStorm`_
- * `Sublime Text`_
- * `Vim`_
- Contribute
- ----------
- The tool comes with quite a few built-in fixers and finders, but everyone is
- more than welcome to `contribute`_ more of them.
- Fixers
- ~~~~~~
- A *fixer* is a class that tries to fix one CS issue (a ``Fixer`` class must
- implement ``FixerInterface``).
- Configs
- ~~~~~~~
- A *config* knows about the CS rules and the files and directories that must be
- scanned by the tool when run in the directory of your project. It is useful for
- projects that follow a well-known directory structures (like for Symfony
- projects for instance).
- .. _php-cs-fixer.phar: https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v1.12.2/php-cs-fixer.phar
- .. _Atom: https://github.com/Glavin001/atom-beautify
- .. _NetBeans: http://plugins.netbeans.org/plugin/49042/php-cs-fixer
- .. _PhpStorm: http://tzfrs.de/2015/01/automatically-format-code-to-match-psr-standards-with-phpstorm
- .. _Sublime Text: https://github.com/benmatselby/sublime-phpcs
- .. _Vim: https://github.com/stephpy/vim-php-cs-fixer
- .. _contribute: https://github.com/FriendsOfPhp/php-cs-fixer/blob/master/CONTRIBUTING.md
|