php-cs-fixer: держите скобку в одной строке объявления функции - PullRequest
0 голосов
/ 16 ноября 2018

Php cs fixer делает:

function foobar()
{
....
}

и я хочу:

function foobar() {
....
}

Я не вижу, что такое конфигурация для сохранения скобок в той же строке в моем файле конфигурации .php_cs, ни в https://github.com/FriendsOfPHP/PHP-CS-Fixer. Я использую php-cs-fixerV2.

Мой конфигурационный файл: https://pastebin.com/v03v9Lb5

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Стиль, который вы описали здесь, называется " единый истинный стиль скобок " (сокращенно 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 ):

  • массив_синтаксиса для long означает array() вместо []. Использовать ли синтаксис длинного или короткого массива; по умолчанию - 'long';
  • allow_single_line_closure : следует ли разрешить однострочное лямбда-обозначение; по умолчанию - false;
  • position_after_functions_and_oop_constructs : следует ли размещать открывающую скобку на следующей или той же строке после классногоконструкции (неанонимные классы, интерфейсы, признаки, методы и не-лямбда-функции); по умолчанию используется значение «next».

В IDE, таком как Atom, плагин php-cs-fixer будет искать файл конфигурации .php_cs в корневом пути текущего проекта. Также возможно указать путь.

И последнее, но не менее важное, веб-сайт Michele Locati , Конфигурация PHP CS Fixer действительно может помочьпс.

0 голосов
/ 16 ноября 2018

У вас включен 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',
    ),
...