line-length

Řádek delší než limit se ohlásí; opravit ho pravidlo neumí.

Jen hlásí · v žádném presetu · pokrývá Generic.Files.LineLength, SlevomatCodingStandard.Files.LineLength

Co pravidlo hlídá

Změří každý řádek souboru a ohlásí ty, které přesahují limit. Šířka se počítá tak, jak řádek vidíte: tabulátor v odsazení platí za šířku tabulátoru podle stylu, ne za jeden znak. Neměří se, co je obsahem a nedá se zalomit bez změny významu: řádky uvnitř heredocu a víceřádkového řetězce a markup mimo PHP tagy. Dlouhý řádek uvnitř víceřádkového komentáře se hlásí na řádku, kde komentář začíná.

Pravidlo běží jako poslední, až po pravidlech, která umějí dlouhé řádky zalomit (multi-line-call, multi-line-condition, multi-line-array a další). Co ohlásí, je tedy to, co nic zalomit nedokázalo, a zbývá to na vás: rozdělit výraz, pojmenovat mezivýsledek, zkrátit řetězec.

Příklad

Limit je tu snížený, aby se příklad vešel na stránku; výchozí je 120 znaků.

rules:
	dresscode/line-length:
		limit: 60
use Some\Very\Long\Vendor\Namespace\WithAnEvenLonger\ClassName;

$message = sprintf('%s has %d unread messages', $user->name, $count);  // The line is 69 characters long, the limit is 60
$greeting = 'Hello';

Import je delší než limit, ale nehlásí se: nejde rozdělit na víc řádků a volba ignoreImports ho vynechává.

Volby

limit

int, výchozí 120. Největší povolená šířka řádku ve znacích.

rules:
	dresscode/line-length:
		limit: 80
$title = $translator->translate('order.confirmation.subject', ['number' => $order->id]);  // The line is 88 characters long, the limit is 80

ignoreImports

bool, výchozí true. Řádek s use se nehlásí, protože import nejde zalomit.

rules:
	dresscode/line-length:
		limit: 60
		ignoreImports: false
use Some\Very\Long\Vendor\Namespace\WithAnEvenLonger\ClassName;  // The line is 63 characters long, the limit is 60

ignorePatterns

Seznam řetězců, výchozí []. Regulární výrazy; řádek, kterému některý odpovídá, se nehlásí. Hodí se pro řádky s URL nebo pro tabulky dat, které by zalomením ztratily čitelnost.

rules:
	dresscode/line-length:
		limit: 60
		ignorePatterns: ['~https?://~']
$docs = 'https://example.com/documentation/very/long/path/to/the/page';
$data = ['alpha' => 1, 'beta' => 2, 'gamma' => 3, 'delta' => 4];  // The line is 64 characters long, the limit is 60

Zdroj

Třída LineLengthRule, fixtury line-length.

verze: 1.0