php-cs-fixer : 将大括号放在函数声明的同一行
php-cs-fixer : keep brace on the same line of function declaration
Php cs fixer 正在做:
function foobar()
{
....
}
我想要:
function foobar() {
....
}
我看不到在我的配置 .php_cs
文件或 https://github.com/FriendsOfPHP/PHP-CS-Fixer 中将大括号保持在同一行的配置是什么。我正在使用 php-cs-fixerV2。
您启用了 PSR-2,这需要下一行的大括号。从 the documentation 开始,您似乎可以将 braces.position_after_functions_and_oop_constructs
设置为 same
(默认为 next
):
position_after_functions_and_oop_constructs ('next', 'same')
: whether the opening brace should be placed on “next” or “same” line after classy constructs (non-anonymous classes, interfaces, traits, methods and non-lambda functions); defaults to 'next'
myconfig.php_cs:
'braces' => array(
'allow_single_line_closure' => true,
'position_after_functions_and_oop_constructs' => 'same',
),
您在此处描述的样式称为“the one true brace style”(缩写为 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()
而不是 []
。是否使用长数组或短数组语法;默认为 'long';
- allow_single_line_closure:是否允许单行lambda表示法;默认为假;
- position_after_functions_and_oop_constructs:左大括号是否应该放在 "next" 或 "same" 行之后的经典构造(非匿名 类、接口、特征、方法和非 lambda 函数);默认为 'next'.
在IDE这样的Atom中,php-cs-fixer plugin会在当前项目的根路径下搜索.php_cs
配置文件。也可以指定路径。
最后但同样重要的是,Michele Locati, PHP CS Fixer configuration 的网站真的很有帮助。
Php cs fixer 正在做:
function foobar()
{
....
}
我想要:
function foobar() {
....
}
我看不到在我的配置 .php_cs
文件或 https://github.com/FriendsOfPHP/PHP-CS-Fixer 中将大括号保持在同一行的配置是什么。我正在使用 php-cs-fixerV2。
您启用了 PSR-2,这需要下一行的大括号。从 the documentation 开始,您似乎可以将 braces.position_after_functions_and_oop_constructs
设置为 same
(默认为 next
):
position_after_functions_and_oop_constructs ('next', 'same')
: whether the opening brace should be placed on “next” or “same” line after classy constructs (non-anonymous classes, interfaces, traits, methods and non-lambda functions); defaults to 'next'
myconfig.php_cs:
'braces' => array(
'allow_single_line_closure' => true,
'position_after_functions_and_oop_constructs' => 'same',
),
您在此处描述的样式称为“the one true brace style”(缩写为 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()
而不是[]
。是否使用长数组或短数组语法;默认为 'long'; - allow_single_line_closure:是否允许单行lambda表示法;默认为假;
- position_after_functions_and_oop_constructs:左大括号是否应该放在 "next" 或 "same" 行之后的经典构造(非匿名 类、接口、特征、方法和非 lambda 函数);默认为 'next'.
在IDE这样的Atom中,php-cs-fixer plugin会在当前项目的根路径下搜索.php_cs
配置文件。也可以指定路径。
最后但同样重要的是,Michele Locati, PHP CS Fixer configuration 的网站真的很有帮助。