Nette Documentation Preview

syntax
binary-operator-spacing
***********************

.[perex]
Kolem binárního operátoru, přiřazení, `instanceof`, `=>` a `=` výchozí hodnoty je z každé strany aspoň jedna mezera, nebo přesně jedna.

Opravuje · v presetech `dresscode/per`, `dresscode/psr12`, `dresscode/nette` · pokrývá `binary_operator_spaces`, `Squiz.WhiteSpace.LogicalOperatorSpacing`, `Squiz.WhiteSpace.OperatorSpacing` .[rule-info]


Co pravidlo hlídá
=================

`$a+1` se čte hůř než `$a + 1` a `$a=1` vypadá jako překlep. Pravidlo se stará o mezery kolem aritmetických, porovnávacích, logických a bitových operátorů, kolem `??`, kolem všech přiřazení včetně `+=` a `??=`, kolem `instanceof`, kolem `=>` v poli, `match` i arrow funkci a kolem `=` u výchozí hodnoty parametru, vlastnosti nebo konstanty. Tečka pro spojování řetězců má vlastní pravidlo `concat-spacing`, protože o ní se styly rozcházejí; `=` v `declare(strict_types=1)` patří pravidlu `declare-spacing`.

Ve výchozím nastavení stačí aspoň jedna mezera: kdo si zarovnává přiřazení nebo hodnoty v poli pod sebe, o zarovnání nepřijde. Volba `spacing` umí vyžadovat přesně jednu mezeru a `tabAlignment` povolit zarovnání tabulátorem. Operátor na začátku nebo na konci řádku se nehlídá; o rozlomení výrazu přes řádky se starají pravidla `multi-line-*`.


Příklad
=======

```php .[before]
$total=$price*$count;  // At least one space before the = operator // At least one space after the = operator // At least one space before the * operator // At least one space after the * operator
$label = $count>1 ? 'items' : 'item';  // At least one space before the > operator // At least one space after the > operator
$map = ['a'=>1, 'b' => 2];  // At least one space before the double arrow // At least one space after the double arrow
$aligned   = 1;
$alsoFine  = 2;
```

```php .[after]
$total = $price * $count;
$label = $count > 1 ? 'items' : 'item';
$map = ['a' => 1, 'b' => 2];
$aligned   = 1;
$alsoFine  = 2;
```

Poslední dva řádky zůstaly, jak byly: víc mezer než jedna výchozí nastavení dovoluje.


Volby
=====


spacing .[option]
-----------------

`atLeastSingle` nebo `single`, výchozí `atLeastSingle`. S `atLeastSingle` zůstanou mezery navíc, které zarovnávají přiřazení nebo položky pole pod sebe; `single` je stáhne na jednu.

```neon
rules:
	dresscode/binary-operator-spacing:
		spacing: single
```

```php .[before]
$aligned   = 1;  // A single space before the = operator
$alsoFine  = 2;  // A single space before the = operator
```

```php .[after]
$aligned = 1;
$alsoFine = 2;
```


tabAlignment .[option]
----------------------

`bool`, výchozí `false`. S `true` zůstane i mezera tvořená tabulátorem, která zarovnává sloupce, a to i s `spacing: single`.

```neon
rules:
	dresscode/binary-operator-spacing:
		spacing: single
		tabAlignment: true
```

```php .[before]
$short	= 1;
$longerName	= 2;
$spaced   = 3;  // A single space before the = operator
```

```php .[after]
$short	= 1;
$longerName	= 2;
$spaced = 3;
```


Související pravidla
====================

- `concat-spacing` mezery kolem tečky
- `unary-operator-spacing` žádná mezera mezi unárním operátorem a operandem
- `ternary-operator-spacing` mezery kolem `?` a `:`


Zdroj
=====

Třída "BinaryOperatorSpacingRule":https://github.com/dg/dresscode/blob/master/src/DressCode/Rules/Expressions/BinaryOperatorSpacingRule.php, fixtury "binary-operator-spacing":https://github.com/dg/dresscode/tree/master/tests/DressCode/Rules/fixtures/binary-operator-spacing.

binary-operator-spacing

Kolem binárního operátoru, přiřazení, instanceof, => a = výchozí hodnoty je z každé strany aspoň jedna mezera, nebo přesně jedna.

Opravuje · v presetech dresscode/per, dresscode/psr12, dresscode/nette · pokrývá binary_operator_spaces, Squiz.WhiteSpace.LogicalOperatorSpacingSquiz.WhiteSpace.OperatorSpacing

Co pravidlo hlídá

$a+1 se čte hůř než $a + 1 a $a=1 vypadá jako překlep. Pravidlo se stará o mezery kolem aritmetických, porovnávacích, logických a bitových operátorů, kolem ??, kolem všech přiřazení včetně += a ??=, kolem instanceof, kolem => v poli, match i arrow funkci a kolem = u výchozí hodnoty parametru, vlastnosti nebo konstanty. Tečka pro spojování řetězců má vlastní pravidlo concat-spacing, protože o ní se styly rozcházejí; = v declare(strict_types=1) patří pravidlu declare-spacing.

Ve výchozím nastavení stačí aspoň jedna mezera: kdo si zarovnává přiřazení nebo hodnoty v poli pod sebe, o zarovnání nepřijde. Volba spacing umí vyžadovat přesně jednu mezeru a tabAlignment povolit zarovnání tabulátorem. Operátor na začátku nebo na konci řádku se nehlídá; o rozlomení výrazu přes řádky se starají pravidla multi-line-*.

Příklad

$total=$price*$count;  // At least one space before the = operator // At least one space after the = operator // At least one space before the * operator // At least one space after the * operator
$label = $count>1 ? 'items' : 'item';  // At least one space before the > operator // At least one space after the > operator
$map = ['a'=>1, 'b' => 2];  // At least one space before the double arrow // At least one space after the double arrow
$aligned   = 1;
$alsoFine  = 2;
$total = $price * $count;
$label = $count > 1 ? 'items' : 'item';
$map = ['a' => 1, 'b' => 2];
$aligned   = 1;
$alsoFine  = 2;

Poslední dva řádky zůstaly, jak byly: víc mezer než jedna výchozí nastavení dovoluje.

Volby

spacing

atLeastSingle nebo single, výchozí atLeastSingle. S atLeastSingle zůstanou mezery navíc, které zarovnávají přiřazení nebo položky pole pod sebe; single je stáhne na jednu.

rules:
	dresscode/binary-operator-spacing:
		spacing: single
$aligned   = 1;  // A single space before the = operator
$alsoFine  = 2;  // A single space before the = operator
$aligned = 1;
$alsoFine = 2;

tabAlignment

bool, výchozí false. S true zůstane i mezera tvořená tabulátorem, která zarovnává sloupce, a to i s spacing: single.

rules:
	dresscode/binary-operator-spacing:
		spacing: single
		tabAlignment: true
$short	= 1;
$longerName	= 2;
$spaced   = 3;  // A single space before the = operator
$short	= 1;
$longerName	= 2;
$spaced = 3;

Související pravidla

  • concat-spacing mezery kolem tečky
  • unary-operator-spacing žádná mezera mezi unárním operátorem a operandem
  • ternary-operator-spacing mezery kolem ? a :

Zdroj

Třída BinaryOperatorSpacingRule, fixtury binary-operator-spacing.