Nette Documentation Preview

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

.[perex]
Der [Coding Standard |https://github.com/nette/coding-standard] formatiert Ihren PHP-Code automatisch nach dem [Coding Standard von Nette |contributing:coding-standard], von der Einrückung und den Klammern bis zu den Abständen und der Reihenfolge der Imports.

Unter der Haube kombiniert er zwei Standardwerkzeuge der Branche, PHP CS Fixer und PHP CodeSniffer, die vorkonfiguriert mitkommen, sodass Sie selbst nichts einrichten müssen.


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

Installieren Sie das Werkzeug global mit Composer:

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

und stellen Sie sicher, dass Ihr globales Verzeichnis für Vendor-Binaries [in der Umgebungsvariablen `$PATH` |https://getcomposer.org/doc/03-cli.md#global] liegt.


Verwendung
==========

Das Werkzeug bietet zwei Befehle. Der Befehl `check` meldet nur Verstöße, während `fix` sie automatisch behebt:

```shell
ecs check
ecs fix
```

Ohne Argumente durchsucht es die Verzeichnisse `src/` und `tests/`; Sie können auch einen oder mehrere eigene Pfade übergeben, zum Beispiel `ecs check app bin`.

Bevor Sie den Fixer zum ersten Mal ausführen, sichern Sie unbedingt Ihre Dateien.


PHP-Version
===========

Das Werkzeug unterstützt PHP 8.0 bis 8.5 und wendet die Regeln je nach Version schrittweise an. Es erkennt die Version automatisch aus der `composer.json` Ihres Projekts, Sie können sie aber auch ausdrücklich mit der Option `--preset` setzen:

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


Eigene Regeln
=============

Sie können die Regeln für Ihr Projekt anpassen. Um die Regeln von PHP CS Fixer zu ändern, legen Sie im Wurzelverzeichnis des Projekts eine Datei `ncs.php` an:

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

Um die Regeln von PHP CodeSniffer zu ändern, legen Sie eine Datei `ncs.xml` an. Sie muss nicht auf das Preset der Version verweisen (es wird automatisch damit kombiniert), und Sie können mit `$presets/` jedes mitgelieferte Preset einbinden:

```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>
```

Beide Dateien werden automatisch gefunden, und Ihre Regeln haben Vorrang vor dem Preset. Für eine einmalige Überschreibung, die Sie nicht committen wollen, übergeben Sie mit `--config-file` eine zusätzliche Datei (`.php` für den Fixer, `.xml` für den Sniffer).


Continuous Integration
======================

Installieren Sie das Werkzeug in einer CI-Pipeline als Projekt und führen Sie es von dort aus:

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

Nette Coding Standard

Der Coding Standard formatiert Ihren PHP-Code automatisch nach dem Coding Standard von Nette, von der Einrückung und den Klammern bis zu den Abständen und der Reihenfolge der Imports.

Unter der Haube kombiniert er zwei Standardwerkzeuge der Branche, PHP CS Fixer und PHP CodeSniffer, die vorkonfiguriert mitkommen, sodass Sie selbst nichts einrichten müssen.

Installation

Installieren Sie das Werkzeug global mit Composer:

composer global require nette/coding-standard

und stellen Sie sicher, dass Ihr globales Verzeichnis für Vendor-Binaries in der Umgebungsvariablen $PATH liegt.

Verwendung

Das Werkzeug bietet zwei Befehle. Der Befehl check meldet nur Verstöße, während fix sie automatisch behebt:

ecs check
ecs fix

Ohne Argumente durchsucht es die Verzeichnisse src/ und tests/; Sie können auch einen oder mehrere eigene Pfade übergeben, zum Beispiel ecs check app bin.

Bevor Sie den Fixer zum ersten Mal ausführen, sichern Sie unbedingt Ihre Dateien.

PHP-Version

Das Werkzeug unterstützt PHP 8.0 bis 8.5 und wendet die Regeln je nach Version schrittweise an. Es erkennt die Version automatisch aus der composer.json Ihres Projekts, Sie können sie aber auch ausdrücklich mit der Option --preset setzen:

ecs check --preset php81

Eigene Regeln

Sie können die Regeln für Ihr Projekt anpassen. Um die Regeln von PHP CS Fixer zu ändern, legen Sie im Wurzelverzeichnis des Projekts eine Datei ncs.php an:

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

Um die Regeln von PHP CodeSniffer zu ändern, legen Sie eine Datei ncs.xml an. Sie muss nicht auf das Preset der Version verweisen (es wird automatisch damit kombiniert), und Sie können mit $presets/ jedes mitgelieferte Preset einbinden:

<?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>

Beide Dateien werden automatisch gefunden, und Ihre Regeln haben Vorrang vor dem Preset. Für eine einmalige Überschreibung, die Sie nicht committen wollen, übergeben Sie mit --config-file eine zusätzliche Datei (.php für den Fixer, .xml für den Sniffer).

Continuous Integration

Installieren Sie das Werkzeug in einer CI-Pipeline als Projekt und führen Sie es von dort aus:

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