symfony — php-cs-fixer: нужно больше информации об использовании опции fix —level

Хорошо я знаю php-cs-fixer позволяет следующие уровни исправлений для стандартов кодирования:

php php-cs-fixer.phar fix /path/to/project --level=psr0
php php-cs-fixer.phar fix /path/to/project --level=psr1
php php-cs-fixer.phar fix /path/to/project --level=psr2
php php-cs-fixer.phar fix /path/to/project --level=symfony

я знаю это psr0, psr1, psr2 уровни поддерживают указанные стандарты кодирования.

Но я хочу знать, что --level=symfony предложения и чем этот стандарт кодирования отличается от psr2,

Также, если мы не обеспечим --level вариант вообще. Предполагает ли это --level=psr2 по умолчанию?

Спасибо

8

Решение

Сейчас в 2017 году, начиная с версии 2, ты можешь использовать describe команда.

vendor/bin/php-cs-fixer describe @PSR2

Он показывает вам текущие исправления в наборе правил с именами и описанием:

введите описание изображения здесь

Так что для набора правил «Symfony» это будет выглядеть так:

vendor/bin/php-cs-fixer describe @Symfony

И для одного правила вроде:

vendor/bin/php-cs-fixer describe some_rule

Уровень изменен на @Rule

Также обратите внимание level вариант устарел. Используйте это как правило, только с @ вместо префикса.

Если вы ищете более подробную информацию, см. связанный PR.

4

Другие решения

Как я вижу из этого документа https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.8/README.rst он выполняет этот список фильтров:

  • blankline_after_open_tag — убедитесь, что в той же строке, что и открытый тег PHP, нет кода, а за ним следует пустая строка.
  • concat_without_spaces — конкатенация должна использоваться без пробелов.
  • double_arrow_multiline_whitespaces — Operator => не должен быть окружен многострочными пробелами.
  • duplicate_semicolon — удаляет дублированные точки с запятой.
  • empty_return — оператор return, желающий ничего не возвращать, должен быть просто «return».
  • extra_empty_lines — удаляет лишние пустые строки.
  • include — Включить и путь к файлу должен быть разделен одним пробелом. Путь к файлу не должен быть заключен в квадратные скобки.
  • join_function — вместо функции соединения должна использоваться функция Implode.
  • list_commas — Удалить запятые в вызовах функций списка.
  • multiline_array_trailing_comma — многострочные массивы PHP должны иметь запятую в конце.
  • namespace_no_leading_whitespace — строка объявления пространства имен не должна содержать начальные пробелы.
  • new_with_braces — все экземпляры, созданные с новым ключевым словом, должны сопровождаться фигурными скобками.
  • no_blank_lines_after_class_opening — после открывающей скобки не должно быть пустых строк.
  • no_empty_lines_after_phpdocs — Между docblock и документированным элементом не должно быть пустых строк.
  • object_operator — не должно быть пробела до или после объекта T_OBJECT_OPERATOR.
  • operator_spaces — двоичные операторы должны быть окружены хотя бы одним пробелом.
  • phpdoc_indent — у докблоков должны быть те же отступы, что и у задокументированного предмета.
  • phpdoc_no_access — аннотации @access должны быть опущены в phpdocs.
  • phpdoc_no_empty_return — аннотации @return void и @return null должны быть опущены в phpdocs.
  • phpdoc_no_package — аннотации @package и @subpackage должны быть опущены в phpdocs.
  • phpdoc_params — все элементы тегов phpdoc @param, @throws, @return, @var и @type должны быть выровнены по вертикали.
  • phpdoc_scalar — Скалярные типы должны всегда записываться в одной и той же форме. «int», а не «integer»; «bool», а не «логическое»; «плавать», а не «реальный» или «двойной».
  • phpdoc_separation — аннотации в phpdocs должны быть сгруппированы так, чтобы аннотации одного типа сразу следовали друг за другом, а аннотации другого типа разделялись одной пустой строкой.
  • phpdoc_short_description — короткие описания Phpdocs должны заканчиваться либо точкой остановки, восклицательным знаком или вопросительным знаком.
  • phpdoc_to_comment — Докблоки должны использоваться только для структурных элементов.
  • phpdoc_trim — Phpdocs должен начинаться и заканчиваться контентом, исключая самую первую и последнюю строку докблоков.
  • phpdoc_type_to_var — @type всегда должен быть записан как @var.
  • phpdoc_var_without_name — аннотации @var и @type не должны содержать имя переменной.
  • remove_leading_slash_use — удаляет начальные слеши в предложениях об использовании.
  • remove_lines_between_uses — удаляет разрывы строк между операторами использования.
  • return — Пустой перевод строки должен предшествовать оператору return.
  • self_accessor — внутри классного элемента «self» должно быть предпочтительнее, чем само имя класса.
  • single_array_no_trailing_comma — однострочные массивы PHP не должны иметь запятой.
  • single_blank_line_before_namespace — перед объявлением пространства имен должна быть ровно одна пустая строка.
  • single_quote — конвертировать двойные кавычки в одинарные для простых строк.
  • space_before_semicolon — однострочные пробелы перед точкой с запятой
  • space_cast — Между приведением и переменной должен быть один пробел.
  • standardize_not_equal — заменить все <> с! =.
  • ternary_spaces — Стандартизировать пространства вокруг тернарного оператора.
  • trim_array_spaces — Массивы должны быть отформатированы как аргументы функций / методов, без пробела в начале или в конце.
  • unalign_double_arrow — выровнять символы двойной стрелки.
  • unalign_equals — Unalign равно символам.
  • unary_operators_spaces — Унарные операторы должны быть расположены рядом с их операндами.
  • unused_use — неиспользуемые операторы использования должны быть удалены.
  • whitespacy_lines — удаляет завершающие пробелы в конце пустых строк.
1

Вот хороший пост в блоге на использовании php-cs-fixer и здесь подразумевается, что по умолчанию он использует psr2 исправители, если --level Опция не предусмотрена.

Но если мы пройдем --level=symfony явно работает какой-то «Дополнительные» проверки, которые нацелены на Symfony и выходят за рамки PSR2

По умолчанию он запускает «все исправители PSR-2 и некоторые дополнительные». Вы
можно переключать уровень, который вы хотите запустить, с флагом —level, который я
установить psr2 так, чтобы «дополнительные» проверки, которые нацелены
в Symfony и выходи за рамки PSR2, не бросай меня. (Работает
весь стек по умолчанию, который называется уровень «Symfony» и
включает в себя такие вещи, как «Выравнивать знаки равенства в последующих строках»).

Так же php-cs-fixer README на github предоставляет некоторую информацию о фильтрах, которые работают в PSR-0, PSR-1, PSR-2 и Symfony.

1