Nette Documentation Preview

syntax
Nette Coding Standard
*********************

.[perex]
[Coding Standard |https://github.com/nette/coding-standard] met automatiquement en forme votre code PHP selon le [standard de codage de Nette |contributing:coding-standard], de l'indentation et des accolades jusqu'aux espaces et à l'ordre des imports.

En interne, il combine deux outils reconnus, PHP CS Fixer et PHP CodeSniffer, livrés préconfigurés : vous n'avez donc rien à régler vous-même.


Installation
============

Installez l'outil globalement à l'aide de Composer :

```shell
composer global require nette/coding-standard
```

et assurez-vous que le répertoire global des binaires de Composer figure dans [votre variable d'environnement `$PATH`|https://getcomposer.org/doc/03-cli.md#global].


Utilisation
===========

L'outil propose deux commandes. La commande `check` se contente de signaler les manquements, tandis que `fix` les corrige automatiquement :

```shell
ecs check
ecs fix
```

Sans argument, il parcourt les répertoires `src/` et `tests/` ; vous pouvez aussi lui passer un ou plusieurs chemins à vous, par exemple `ecs check app bin`.

Avant de lancer le correcteur pour la première fois, pensez à sauvegarder vos fichiers.


Version de PHP
==============

L'outil prend en charge PHP 8.0 à 8.5 et applique les règles progressivement selon la version. Il détecte celle-ci automatiquement d'après le `composer.json` de votre projet, mais vous pouvez aussi l'indiquer explicitement avec l'option `--preset` :

```shell
ecs check --preset php81
```


Règles personnalisées
=====================

Vous pouvez ajuster les règles pour votre projet. Pour modifier les règles de PHP CS Fixer, créez un fichier `ncs.php` à la racine du projet :

```php
<?php
return [
	'strict_comparison' => false,
];
```

Pour modifier les règles de PHP CodeSniffer, créez un fichier `ncs.xml`. Il n'a pas besoin de référencer le preset de version (il y est combiné automatiquement), et vous pouvez utiliser `$presets/` pour importer n'importe quel preset fourni :

```xml
<?xml version="1.0"?>
<ruleset name="MyProject">
	<!-- enable use function/const imports -->
	<rule ref="$presets/optimize-fn.xml"/>

	<!-- disable a rule -->
	<exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
</ruleset>
```

Les deux fichiers sont trouvés automatiquement et vos règles ont la priorité sur le preset. Pour une surcharge ponctuelle que vous ne voulez pas versionner, passez un fichier supplémentaire avec `--config-file` (`.php` pour le fixer, `.xml` pour le sniffer).


Intégration continue
====================

Dans un pipeline CI, installez l'outil comme un projet et lancez-le depuis là :

```yaml
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check
```

Nette Coding Standard

Coding Standard met automatiquement en forme votre code PHP selon le standard de codage de Nette, de l'indentation et des accolades jusqu'aux espaces et à l'ordre des imports.

En interne, il combine deux outils reconnus, PHP CS Fixer et PHP CodeSniffer, livrés préconfigurés : vous n'avez donc rien à régler vous-même.

Installation

Installez l'outil globalement à l'aide de Composer :

composer global require nette/coding-standard

et assurez-vous que le répertoire global des binaires de Composer figure dans votre variable d'environnement $PATH.

Utilisation

L'outil propose deux commandes. La commande check se contente de signaler les manquements, tandis que fix les corrige automatiquement :

ecs check
ecs fix

Sans argument, il parcourt les répertoires src/ et tests/ ; vous pouvez aussi lui passer un ou plusieurs chemins à vous, par exemple ecs check app bin.

Avant de lancer le correcteur pour la première fois, pensez à sauvegarder vos fichiers.

Version de PHP

L'outil prend en charge PHP 8.0 à 8.5 et applique les règles progressivement selon la version. Il détecte celle-ci automatiquement d'après le composer.json de votre projet, mais vous pouvez aussi l'indiquer explicitement avec l'option --preset :

ecs check --preset php81

Règles personnalisées

Vous pouvez ajuster les règles pour votre projet. Pour modifier les règles de PHP CS Fixer, créez un fichier ncs.php à la racine du projet :

<?php
return [
	'strict_comparison' => false,
];

Pour modifier les règles de PHP CodeSniffer, créez un fichier ncs.xml. Il n'a pas besoin de référencer le preset de version (il y est combiné automatiquement), et vous pouvez utiliser $presets/ pour importer n'importe quel preset fourni :

<?xml version="1.0"?>
<ruleset name="MyProject">
	<!-- enable use function/const imports -->
	<rule ref="$presets/optimize-fn.xml"/>

	<!-- disable a rule -->
	<exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
</ruleset>

Les deux fichiers sont trouvés automatiquement et vos règles ont la priorité sur le preset. Pour une surcharge ponctuelle que vous ne voulez pas versionner, passez un fichier supplémentaire avec --config-file (.php pour le fixer, .xml pour le sniffer).

Intégration continue

Dans un pipeline CI, installez l'outil comme un projet et lancez-le depuis là :

- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check