Хорошо я знаю 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