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
по умолчанию?
спасибо
3 ответов
теперь в 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
и уведомления устарела. Используют его, как правило, только с @
префикс вместо.
если вы ищете более подробную информацию, см. связанный PR.
Как я вижу из этого документа https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.8/README.rst он выполняет этот список фильтров:
- blankline_after_open_tag - убедиться в отсутствии кода на одной линии с открывающего тега PHP, и это следует blankline.
- concat_without_spaces-конкатенация должна использоваться без пробелов.
- double_arrow_multiline_whitespaces-Operator => не должен быть ограничен многострочным пробела.
- duplicate_semicolon-удалить дублированные точки с запятой.
- empty_return-оператор return, желающий ничего не возвращать, должен быть просто "return".
- extra_empty_lines-удаляет дополнительные пустые строки.
- include-Include и путь к файлу должны быть разделены одним пробелом. Путь к файлу не следует заключать в скобки.
- join_function-функция Implode должна использоваться вместо функции join.
- 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.
- operators_spaces-двоичные операторы должны быть окружены хотя бы одним пробелом.
- phpdoc_indent-Docblocks должны иметь тот же отступ, что и задокументированный субъект.
- phpdoc_no_access - @Access аннотации должны быть исключено из phpdocs.
- phpdoc_no_empty_return - @return void и @return null аннотации должны быть опущены из phpdocs.
- phpdoc_no_package - @package и @subpackage аннотации должны быть опущены из phpdocs.
- phpdoc_params - все элементы тегов @param, @throws, @return, @var и @type phpdoc должны быть выровнены по вертикали.
- phpdoc_scalar-скалярные типы всегда должны быть написаны в одной и той же форме. "int", а не "integer"; "bool", а не "boolean"; "float", а не "real"или " double".
- Phpdoc_separation - аннотации в phpdocs должны быть сгруппированы вместе так, чтобы аннотации одного и того же типа сразу следовали друг за другом, а аннотации другого типа разделялись одной пустой строкой.
- phpdoc_short_description - короткие описания Phpdocs должны заканчиваться либо полной остановкой, восклицательным знаком, либо вопросительным знаком.
- phpdoc_to_comment-Docblocks следует использовать только на структурных элементы.
- phpdoc_trim-Phpdocs должен начинаться и заканчиваться содержимым, исключая самую первую и последнюю строку docblocks.
- phpdoc_type_to_var - @type всегда должен быть записан как @var.
- phpdoc_var_without_name - @VAR и @Type аннотации не должны содержать имя переменной.
- remove_leading_slash_use-удалить ведущие косые черты в предложениях use.
- remove_lines_between_uses - удаляет разрывы строк между использованием заявления.
- return - пустой канал строки должен предшествовать оператору return.
- self_accessor-внутри классного элемента "self" должно быть предпочтительнее самого имени класса.
- single_array_no_trailing_comma - PHP однострочные массивы не должны иметь конечной запятой.
- single_blank_line_before_namespace-перед объявлением пространства имен должна быть ровно одна пустая строка.
- single_quote-конвертировать двойные кавычки в одинарные для простых струн.
- spaces_before_semicolon-однострочные пробелы перед закрытием точки с запятой
- spaces_cast-между cast и variable должно быть одно пространство.
- standardize_not_equal-заменить все на !=.
- ternary_spaces-стандартизация пространств вокруг тернарного оператора.
- trim_array_spaces - массивы должны быть отформатированы как аргументы функции / метода, без ведущей или конечной одной строки пространство.
- unalign_double_arrow-символы двойной стрелки Unalign.
- unalign_equals-Unalign равно символам.
- unary_operators_spaces-унарные операторы должны располагаться рядом с их операндами.
- unused_use-неиспользуемые операторы use должны быть удалены.
- whitespacy_lines-удалить конечные пробелы в конце пустых строк.
вот!--5-->хороший пост в блоге С помощью 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.