Literály

Sekce literals rozhoduje o tom, jak se píšou hodnoty přímo v kódu: pole [] místo array(), uvozovky řetězce, oddělovače číslic 1_000_000, heredoc bez interpolace jako nowdoc, dva řetězce spojené tečkou na jednom řádku a jméno třídy v řetězci.

Klíč quotes se týká jen obyčejného řetězce, tedy takového, který nemá interpolaci proměnné, escape sekvenci, kterou znají jen dvojité uvozovky, ani uvozovku žádaného druhu uvnitř. U všech ostatních na druhu uvozovek záleží a zůstanou, jak jsou.

literals:
	longArraySyntax: forbidden
	quotes: single
	digitGroupsFrom: 7
	concatenatedLiterals: joined
$colors = array("red", "green");  // The array must be written `[…]` instead of `array(…)`. // A plain string must be written with single quotes. // A plain string must be written with single quotes.
$limit = 1000000;  // The number `1000000` must be written `1_000_000`.
$query = 'SELECT * ' . 'FROM users';  // Useless concatenation of two string literals.
$greeting = "Hello $name";
$colors = ['red', 'green'];
$limit = 1_000_000;
$query = 'SELECT * FROM users';
$greeting = "Hello $name";

Řetězec s proměnnou zůstal ve dvojitých uvozovkách, protože ty jeho význam mění.

literals.nullArrayKey

[null => 1] is ['' => 1], which it becomes.

  • forbidden: never there
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette keep, symfony keep

literals.longArraySyntax

array(1, 2) is [1, 2], list($a) = is [$a] =.

  • forbidden: never there
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs forbidden, psr12 keep, nette forbidden, symfony forbidden · pokrývá array_syntax, list_syntax, Generic.Arrays.DisallowLongArraySyntax, SlevomatCodingStandard.PHP.ShortList

literals.classNameInString

'Acme\Shop\Order' is Order::class.

  • forbidden: never there
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · jen s typy · standardy: perCs keep, psr12 keep, nette forbidden, symfony keep · pokrývá class_keyword

Jméno třídy v řetězci se přepíše na ::class jen tehdy, když třída toho jména v projektu opravdu existuje; to DressCode zjistí z typů z PHPStanu. Pravidlo class_keyword PHP CS Fixeru to podle vlastní dokumentace poznat nemůže, protože nad tokeny neví, jaké třídy projekt má.

literals.manualEmptyTest

strlen($s) === 0 is $s === ''.

  • forbidden: never there
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · jen s typy · standardy: perCs keep, psr12 keep, nette forbidden, symfony keep · pokrývá PhpCsFixerCustomFixers/no_useless_strlen, string_length_to_empty

literals.backslashes

A backslash of a string that escapes nothing.

  • escaped: every backslash written \\
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette escaped, symfony keep · pokrývá escape_implicit_backslashes, string_implicit_backslashes

literals.heredocWithoutInterpolation

Is a nowdoc.

  • forbidden: never there
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs forbidden, psr12 keep, nette forbidden, symfony keep · pokrývá heredoc_to_nowdoc, SlevomatCodingStandard.PHP.RequireNowdoc

literals.digitGroupsFrom

The number of digits from which a decimal integer, or the integer part of a decimal number, has its digits grouped by three, 1_000; a number grouped already stays.

  • počet od 1
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette 7, symfony keep · pokrývá PhpCsFixerCustomFixers/numeric_literal_separator, numeric_literal_separator, SlevomatCodingStandard.Numbers.RequireNumericLiteralSeparator

literals.fractionDigitGroupsFrom

The number of digits from which the fraction of a decimal number has its digits grouped by three, 0.000_1.

  • počet od 1
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette 20, symfony keep · pokrývá PhpCsFixerCustomFixers/numeric_literal_separator, numeric_literal_separator, SlevomatCodingStandard.Numbers.RequireNumericLiteralSeparator

literals.quotes

The quotes of a plain string, one without interpolation, without an escape sequence only double quotes know and without a quote of the wanted kind inside.

  • single: 'text' where double quotes gain nothing
  • double: "text" where single quotes gain nothing
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette single, symfony single · pokrývá single_quote, Squiz.Strings.DoubleQuoteUsage

literals.concatenatedLiterals

Two string literals concatenated on one line, which are one literal, and the concatenation with an empty string, which is a cast or nothing.

  • joined: 'a' . 'b' is 'ab', . '' goes
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette joined, symfony keep · pokrývá PhpCsFixerCustomFixers/no_superfluous_concatenation, Generic.Strings.UnnecessaryStringConcat

literals.concatenatedLiteralsOverLines

Two string literals concatenated on different lines.

  • joined: 'a' and . 'b' on the next line are 'ab'
  • keep: nic se nevynucuje, kód zůstane, jak je

Požadavek · standardy: perCs keep, psr12 keep, nette keep, symfony keep · pokrývá PhpCsFixerCustomFixers/no_superfluous_concatenation, Generic.Strings.UnnecessaryStringConcat