brace-stylefixable
Ensure that opening and closing braces have consistent style
Options
style
The brace style to enforce
Type: string
Default: psr
Possible values: 1tbs
, psr
{data-desc="psr style. See https://www.php-fig.org/psr/psr-12/ for more information"}
Examples
- Examples of correct code for this rule using default options
Objects with correct brace style
php
<?php
class Base
{
protected $anonymous;
public function __construct()
{
$this->anonymous = new class extends ArrayObject
{
public function __construct()
{
parent::__construct(['a' => 1, 'b' => 2]);
}
};
}
}
trait Message1
{
public function msg1()
{
echo "OOP is fun! ";
}
}
class ClassName extends Directory implements \Countable
{
private $items = [];
public function __construct()
{
}
public function count(): int
{
return 0;
}
}
class A extends B
implements C
{
}
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
If statements with correct brace style
php
<?php
if (true) {
echo "True";
}
// if elseif else
if (true) {
echo "True";
} elseif (false) {
echo "False";
} elseif (true) {
echo "middle test";
} else {
echo "nested if";
}
// If else
if (true){
echo "True";
} else {
echo "one level data";
}
if ($event === true):
echo "even is {$event})";
endif;
Loop statements with correct brace style
php
<?php
foreach ($array as $key => $value) {
echo "True";
}
for( $i = 0; $i < 10; $i++) {
echo "True";
}
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
Try catch statements with correct brace style
php
<?php
function inverse($x)
{
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
function connect(
$server,
$username,
$password,
$port,
$database,
$socket = array()
) {
// Connect
}
function login(
$username,
$password,
) :boolean {
// Connect
}
Function declarations with correct brace style
php
<?php
try {
echo inverse(5) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
} finally {
echo "First finally.\n";
}
try {
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
try {
echo inverse(0) . "\n";
} catch (ExceptionType1 $e) {
echo inverse(5) . "\n";
} catch (ExceptionType2 $e) {
error_log($e->getMessage());
} finally {
echo "Final Step";
}
Switch statement and match expressions with correct brace style
php
<?php
switch ($foo) {
case 1:
switch ($bar) {
default:
echo $string[1];
}
break;
}
function temp($foo, $bar)
{
switch ($foo) {
case 1:
switch ($bar) {
default:
return $foo;
}
break;
}
}
switch ($foo) {
case 1:
switch ($bar) {
default:
if ($something) {
echo $string[1];
} else if ($else) {
switch ($else) {
default:
}
}
}
break;
}
switch ($name) {
case "1":
case "2":
case "3":
return true;
}
switch ($name) {
case "1":
case "2":
case "3":
default:
return true;
}
switch ($foo) {
case 1:
switch ($bar) {
default:
if ($something) {
echo $string[1];
} else if ($else) {
switch ($else) {
case 1:
// Do something.
break;
default:
// Do something.
break;
}
}
}
break;
case 2:
// Do something;
break;
}
switch ($http_response_code) {
case 100:
case 101:
case 102:
exit;
default:
exit;
}
match ($food) {
'apple' => 'This food is an apple',
'orange' => 'This food is a orange',
'cake' => 'This food is a cake',
};
match($month_name) {
'jan' => 31,
'feb' => is_leap_year($year) ? 29 : 28,
'mar' => 31,
'apr' => 30,
'may' => 31,
'jun' => 30,
'jul' => 31,
'aug' => 31,
'sep' => 30,
'oct' => 31,
'nov' => 30,
'dec' => 31,
default => throw new InvalidArgumentException("Invalid month")
};
- Examples of incorrect code for this rule using default options
Control structure with incorrect brace style
php
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
function connect(
$server,
$username,
$password,
$port,
$database,
$socket ) {
// Connect
}
if (true) {
echo "True"; }
// if elseif else
if (true)
{
echo "True";}
elseif (false) {
echo "False";
} elseif
(true) { echo "middle test";
} else {
echo "nested if"; }
try
{
echo inverse(0) . "\n";
}
catch (ExceptionType1 $e) {
echo inverse(5) . "\n";
} catch (ExceptionType2 $e) {
error_log($e->getMessage());
}
finally {
echo "Final Step";
}
do {
echo "The number is: $x <br>";
$x++;
}
while (
$x <= 5);
Switch statement and match expressions with incorrect brace style
php
<?php
switch ($foo)
{
case 1:
switch ($bar)
{
default:
echo $string[1];
}
break;
}
function temp($foo, $bar) {
switch ($foo)
{
case 1:
switch ($bar) {
default:
return $foo;}
break;
}
}
switch ($name)
{
case "1":
case "2":
case "3":
return true;}
match ($food)
{ 'apple' => 'This food is an apple',
'orange' => 'This food is a orange',
'cake' => 'This food is a cake',};
match($month_name)
{
'jan' => 31,
'feb' => is_leap_year($year) ? 29 : 28,
'mar' => 31,
'apr' => 30,
'may' => 31,
'jun' => 30,
'jul' => 31,
'aug' => 31,
'sep' => 30,
'oct' => 31,
'nov' => 30,
'dec' => 31,
default => throw new InvalidArgumentException("Invalid month")};
style
- Examples of correct code for this rule using style option
Class and methods with correct brace style
php
<?php
/* taqwim psr/brace-style: {style: "1tbs"} */
class Testing {
public function test() {
if (true) {
echo "Hello World";
} else {
echo "Hello World";
}
}
private function multipleParameters($parameter1, $parameter2, $parameter3) {
echo "Hello World";
}
private function multipleParamsOverMultipleLines(
$parameter1,
$parameter2,
$parameter3
) {
echo "Hello World";
}
}
- Examples of incorrect code for this rule using style option
Class and methods with incorrect brace style
php
<?php
/* taqwim psr/brace-style: {style: "1tbs"} */
class Testing
{
public function test()
{
if (true) {
echo "Hello World";
} else {
echo "Hello World";
}
}
private function multipleParameters($parameter1, $parameter2, $parameter3)
{
echo "Hello World";
}
private function multipleParamsOverMultipleLines(
$parameter1,
$parameter2,
$parameter3
)
{
echo "Hello World";
}
private function multipleParamsOverMultipleLinesWithType(
$parameter1,
$parameter2,
$parameter3
) :boolean
{
echo "Hello World";
}
}