Référence de configuration
Le formateur est opinionné et fournit des valeurs par défaut sensées conformes à PER-CS, mais une poignée d'options vous permet de l'ajuster à un autre style maison. Tout se trouve sous la table [formatter].
[formatter]
print-width = 100
use-tabs = true
Préréglages
Un préréglage est un ensemble complet d'options de formateur ajustées pour une norme de codage spécifique.
[formatter]
preset = "laravel"
| Préréglage | Description |
default | Conforme à PER-CS. Identique aux valeurs par défaut intégrées. |
psr-12 | Norme de codage PSR-12. |
laravel | Préréglage laravel de Laravel Pint. |
drupal | Norme de codage Drupal. |
Les préréglages acceptent un suffixe de version :
preset = "psr-12@latest"
preset = "psr-12" # same as @latest
Aujourd'hui, seul latest est pris en charge. Les futures versions de Mago permettront de figer des versions spécifiques de la norme.
Vous pouvez également combiner un préréglage avec des options individuelles. Le préréglage fournit la base ; les options explicites le remplacent.
[formatter]
preset = "laravel"
print-width = 140
| Option | Type | Défaut | Description |
preset | chaîne | aucun | L'un de default, psr-12, laravel, drupal. |
excludes | liste de chaînes | [] | Chemins ou globs que le formateur ignore. S'ajoute à source.excludes. |
excludes ici s'ajoute à la liste globale. Les fichiers correspondant globalement sont toujours exclus ; cette option vous permet d'exclure des fichiers supplémentaires uniquement du formateur.
[source]
excludes = ["cache/**"] # excluded from every tool
[formatter]
excludes = ["src/**/AutoGenerated/**/*.php"] # additionally excluded from formatting
Disposition et largeur
| Option | Type | Défaut | Description |
print-width | entier | 120 | Longueur maximale de ligne à laquelle l'imprimante coupe. |
tab-width | entier | 4 | Espaces par niveau d'indentation. |
use-tabs | booléen | false | Utiliser des tabulations au lieu d'espaces. |
end-of-line | enum | "lf" | Terminateur de ligne. Valeurs : auto, lf, crlf, cr. |
single-quote | booléen | true | Préférer les guillemets simples pour les chaînes. |
indent-heredoc | booléen | true | Indenter le corps heredoc/nowdoc pour correspondre à la portée environnante (PER-CS 3.0 §10). Lorsque false, le corps et l'étiquette de fermeture sont à la colonne 0. |
trailing-comma | booléen | true | Ajouter une virgule finale aux tableaux multi-lignes, listes de paramètres, etc. |
remove-trailing-close-tag | booléen | true | Supprimer le ?> final des fichiers. |
Placement des accolades
| Option | Type | Défaut | Description |
control-brace-style | enum | "same-line" | Accolades pour les structures de contrôle. |
following-clause-on-newline | booléen | false | Mettre else, elseif, catch, finally sur une nouvelle ligne. |
closure-brace-style | enum | "same-line" | Accolades pour les closures et classes anonymes. |
function-brace-style | enum | "next-line" | Accolades pour les fonctions. |
method-brace-style | enum | "next-line" | Accolades pour les méthodes. |
classlike-brace-style | enum | "always-next-line" | Accolades pour les classes, traits, interfaces, enums. |
Les enums de style d'accolades acceptent tous les trois mêmes valeurs :
same-line : l'accolade ouvrante reste sur la ligne de déclaration.
next-line : l'accolade ouvrante va à la ligne suivante pour les signatures sur une seule ligne, mais reste sur la ligne de déclaration lorsque la signature est coupée sur plusieurs lignes.
always-next-line : l'accolade ouvrante va toujours à la ligne suivante, même lorsque la signature est coupée.
Pour method-brace-style = "next-line" :
public function foo(): string
{
}
public function bar(
string $veryLongParam,
): string {
}
Pour method-brace-style = "always-next-line" :
public function bar(
string $veryLongParam,
): string
{
}
Corps vides
| Option | Type | Défaut | Description |
inline-empty-control-braces | booléen | false | Inline les corps de structure de contrôle vides. |
inline-empty-closure-braces | booléen | true | Inline les corps de closure vides. |
inline-empty-function-braces | booléen | true | Inline les corps de fonction vides. |
inline-empty-method-braces | booléen | true | Inline les corps de méthode vides. |
inline-empty-constructor-braces | booléen | true | Inline les corps de constructeur vides. |
inline-empty-classlike-braces | booléen | true | Inline les corps de type classe vides. |
inline-empty-anonymous-class-braces | booléen | true | Inline les corps de classe anonyme vides. |
Chaînes de méthodes
| Option | Type | Défaut | Description |
method-chain-breaking-style | enum | "next-line" | Une fois qu'une chaîne se brise, où l'appel se positionne. Valeurs : same-line, next-line. |
first-method-chain-on-new-line | booléen | true | Lorsqu'une chaîne d'objet (->, ?->) se brise, mettre le premier appel sur une nouvelle ligne. L'accès statique (::) reste attaché à sa cible (PER-CS 4.7). |
method-chain-semicolon-on-next-line | booléen | false | Lorsqu'une chaîne multi-lignes est une instruction, mettre le point-virgule de terminaison sur sa propre ligne. |
preserve-breaking-member-access-chain | booléen | false | Préserver les sauts de ligne existants dans les chaînes d'accès aux membres. |
preserve-breaking-member-access-chain-first-method-on-same-line | booléen | false | Lors de la préservation d'une chaîne brisée, garder la première méthode sur la ligne du récepteur. |
Préservation des sauts de l'auteur
| Option | Type | Défaut | Description |
preserve-breaking-argument-list | booléen | false | Préserver les sauts de ligne existants dans les listes d'arguments. |
preserve-breaking-array-like | booléen | true | Préserver les sauts de ligne existants dans les types tableau. |
preserve-breaking-parameter-list | booléen | false | Préserver les sauts de ligne existants dans les listes de paramètres. |
preserve-breaking-attribute-list | booléen | false | Préserver les sauts de ligne existants dans les listes d'attributs. |
preserve-breaking-conditional-expression | booléen | false | Préserver les sauts de ligne existants dans les ternaires. |
preserve-breaking-condition-expression | booléen | false | Préserver les sauts de ligne existants dans les conditions de structure de contrôle. Lorsque activé, chaque opérateur booléen va sur sa propre ligne. |
break-promoted-properties-list | booléen | true | Toujours casser les listes de paramètres avec des propriétés promues. |
parameter-attribute-on-new-line | booléen | true | Mettre les attributs de paramètre sur leur propre ligne lorsque la liste de paramètres se casse (PER-CS 12.2). |
line-before-binary-operator | booléen | true | Lorsqu'une expression binaire se casse, placer l'opérateur sur la ligne suivante. |
indent-binary-expression-continuation | booléen | false | Indenter les lignes de continuation des expressions binaires dans les affectations. Disponible depuis 1.19. |
omit-redundant-arithmetic-binary-expression-parentheses | booléen | false | Supprimer les parenthèses redondantes autour de l'arithmétique lorsque la comparaison ou la coalescence nulle préserve déjà le sens. |
omit-redundant-bitwise-binary-expression-parentheses | booléen | false | Supprimer les parenthèses redondantes autour des sous-expressions bit-à-bit lorsque la précédence préserve déjà le sens. |
preserve-redundant-logical-binary-expression-parentheses | booléen | false | Conserver les parenthèses écrites par l'auteur autour d'une sous-expression logique lorsque son parent est aussi logique. |
Alignement des arguments et paramètres
| Option | Type | Défaut | Description |
always-break-named-arguments-list | booléen | false | Toujours casser les listes d'arguments nommés. |
always-break-attribute-named-argument-lists | booléen | false | Toujours casser les arguments nommés dans les attributs. |
align-parameters | booléen | false | Aligner en colonnes les listes de paramètres multi-lignes par variable. |
align-named-arguments | booléen | false | Aligner en colonnes les arguments nommés dans les appels et attributs multi-lignes. |
array-table-style-alignment | booléen | true | Utiliser l'alignement de style tableau pour les arrays. |
align-assignment-like | booléen | false | Aligner en colonnes les constructions de type affectation consécutives (variables, paires clé/valeur de tableau multi-lignes, propriétés, constantes, cas d'enum, bras de match). Les arrays inline compacts restent non alignés. |
Instructions use
| Option | Type | Défaut | Description |
sort-uses | booléen | true | Trier les instructions use alphabétiquement. |
sort-class-methods | booléen | false | Ordonner les méthodes de classe par visibilité et type : constructeur en premier, puis méthodes statiques, puis méthodes d'instance par visibilité, destructeur en dernier. |
separate-use-types | booléen | true | Insérer une ligne vide entre différents types de use. |
expand-use-groups | booléen | true | Étendre les instructions use groupées en instructions individuelles. |
Indications de type et constructions
| Option | Type | Défaut | Description |
null-type-hint | enum | "question" | Comment formater les types nullables. null_pipe réécrit ?T en null|T, en préservant l'ordre de l'union. null_pipe_last réécrit ?T en T|null et réordonne les unions pour mettre null en dernier. question réécrit null|T et T|null en ?T. |
parentheses-around-new-in-member-access | booléen | false | Encadrer new dans l'accès aux membres : (new Foo)->bar(). |
parentheses-in-new-expression | booléen | true | Ajouter () à new sans arguments : new Foo(). |
parentheses-in-exit-and-die | booléen | true | Ajouter () à exit et die. |
parentheses-in-attribute | booléen | false | Ajouter () aux attributs sans arguments. |
Espaces autour des opérateurs
| Option | Type | Défaut | Description |
space-before-arrow-function-parameter-list-parenthesis | booléen | false | Espace avant la liste de paramètres de fonction fléchée. |
space-before-closure-parameter-list-parenthesis | booléen | true | Espace avant la liste de paramètres de closure. |
space-before-hook-parameter-list-parenthesis | booléen | false | Espace avant la liste de paramètres de hook de propriété. |
inline-abstract-property-hooks | booléen | true | Garder les hooks de propriété abstraits (get;, set;) sur une seule ligne (PER-CS 4.10). |
space-before-closure-use-clause-parenthesis | booléen | true | Espace avant le use (...) de closure. |
space-after-cast-unary-prefix-operators | booléen | true | Espace après les opérateurs de cast comme (int). |
space-after-reference-unary-prefix-operator | booléen | false | Espace après &. |
space-after-error-control-unary-prefix-operator | booléen | false | Espace après @. |
space-after-logical-not-unary-prefix-operator | booléen | false | Espace après !. |
space-after-bitwise-not-unary-prefix-operator | booléen | false | Espace après ~. |
space-after-increment-unary-prefix-operator | booléen | false | Espace après ++ préfixe. |
space-after-decrement-unary-prefix-operator | booléen | false | Espace après -- préfixe. |
space-after-additive-unary-prefix-operator | booléen | false | Espace après les + et - unaires. |
space-around-concatenation-binary-operator | booléen | true | Espaces autour de .. |
space-around-assignment-in-declare | booléen | false | Espaces autour de = dans declare. |
space-within-grouping-parenthesis | booléen | false | Espaces à l'intérieur des parenthèses de regroupement : ( 1 + 2 ). |
Lignes vides
| Option | Type | Défaut | Description |
empty-line-after-control-structure | booléen | false | Ligne vide après une structure de contrôle. |
opening-tag-on-own-line | booléen | true | Mettre <?php sur sa propre ligne dans les fichiers PHP purs (PER-CS 3.0). Les templates avec HTML inline ne sont pas affectés. |
empty-line-after-opening-tag | booléen | true | Ligne vide après <?php. |
empty-line-after-declare | booléen | true | Ligne vide après declare. |
empty-line-after-namespace | booléen | true | Ligne vide après namespace. |
empty-line-after-use | booléen | true | Ligne vide après les blocs use. |
empty-line-after-symbols | booléen | true | Ligne vide après les symboles de premier niveau. |
empty-line-between-same-symbols | booléen | true | Ligne vide entre symboles consécutifs du même type. S'applique uniquement lorsque empty-line-after-symbols est true. |
empty-line-after-class-like-open | booléen | false | Ligne vide après l'accolade ouvrante d'un type classe. |
empty-line-after-class-like-constant | booléen | false | Ligne vide après une constante de classe. |
empty-line-before-class-like-close | booléen | false | Ligne vide avant l'accolade fermante d'un type classe non vide. |
empty-line-after-enum-case | booléen | false | Ligne vide après un cas d'enum. |
empty-line-after-trait-use | booléen | false | Ligne vide après un use de trait. |
empty-line-after-property | booléen | false | Ligne vide après une propriété. |
empty-line-after-method | booléen | true | Ligne vide après une méthode. |
empty-line-before-return | booléen | false | Ligne vide avant un return. |
empty-line-before-dangling-comments | booléen | true | Ligne vide avant les commentaires pendants. |
separate-class-like-members | booléen | true | Ligne vide entre différents types de membres de classe. |
Casse
| Option | Type | Défaut | Description |
uppercase-literal-keyword | booléen | false | Lorsque true, formater true, false, null en MAJUSCULES. |