php-cs-fixer: держите скобку в одной строке объявления функции
Php cs fixer делает:
function foobar()
{
....
}
и я хочу:
function foobar() {
....
}
Я не вижу, что такое конфигурация, чтобы держать скобки на той же строке в моем конфиге .php_cs
файл, ни на https://github.com/FriendsOfPHP/PHP-CS-Fixer. Я использую php-cs-fixerV2.
Мой конфигурационный файл: https://pastebin.com/v03v9Lb5
1 ответ
У вас включен PSR-2, для чего нужны скобки на следующей строке. Из документации видно, что вы можете установить braces.position_after_functions_and_oop_constructs
в same
(по умолчанию будет next
):
position_after_functions_and_oop_constructs ('next', 'same')
: должна ли открывающая скобка быть помещена в "следующую" или "ту же" строку после классных конструкций (неанонимные классы, интерфейсы, признаки, методы и не-лямбда-функции); по умолчанию "следующий"
myconfig.php_cs:
'braces' => array(
'allow_single_line_closure' => true,
'position_after_functions_and_oop_constructs' => 'same',
),
Стиль, который вы описали здесь, называется " стиль единой верной скобки " (сокращенно 1TBS или OTBS).
Когда я получаю точно такую же проблему, я наконец-то закончил здесь, и хотя ответ @Robbie помогает, мне все равно пришлось много искать.
Итак, я наконец-то понял .php_cs
в моем хранилище:
<?php
$finder = PhpCsFixer\Finder::create()
//->exclude('somedir')
//->notPath('src/Symfony/Component/Translation/Tests/fixtures/resources.php'
->in(__DIR__)
;
return PhpCsFixer\Config::create()
->setRules([
'@PSR2' => true,
'strict_param' => false,
'array_syntax' => ['syntax' => 'long'],
'braces' => [
'allow_single_line_closure' => true,
'position_after_functions_and_oop_constructs' => 'same'],
])
->setFinder($finder)
;
Некоторые пояснения (из ( PHP-CS-Fixer README):
- array_syntax для long означает
array()
вместо[]
, Использовать ли синтаксис длинного или короткого массива; по умолчанию "длинный"; - allow_single_line_closure: должна ли быть разрешена однострочная лямбда-нотация; по умолчанию false
- position_after_functions_and_oop_constructs: следует ли размещать открывающую фигурную скобку на следующей или той же строке после классных конструкций (неанонимные классы, интерфейсы, признаки, методы и не-лямбда-функции); по умолчанию "следующий".
В IDE, таком как Atom, плагин php-cs-fixer будет искать .php_cs
Конфигурационный файл в корневом каталоге текущего проекта. Также возможно указать путь.
Наконец, что не менее важно, веб-сайт Michele Locati, PHP CS Fixer, конфигурация действительно может помочь.