Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/paqtcom/coding-standards
Default coding standards for PHP
https://github.com/paqtcom/coding-standards
internal php
Last synced: 2 months ago
JSON representation
Default coding standards for PHP
- Host: GitHub
- URL: https://github.com/paqtcom/coding-standards
- Owner: paqtcom
- License: gpl-3.0
- Created: 2022-02-02T14:03:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-31T10:58:11.000Z (3 months ago)
- Last Synced: 2024-10-31T11:30:24.452Z (3 months ago)
- Topics: internal, php
- Language: PHP
- Homepage:
- Size: 76.2 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PAQT.com Coding Standards
Bevat files voor de coding standaarden die gehanteerd worden binnen PAQT. Het bevat coding standaarden voor [phpstan](https://github.com/phpstan/phpstan), [phpmd](https://github.com/phpmd/phpmd), [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) en [php cs fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer).## Installeren
Voeg de dependency toe als een (dev) dependency via Composer.
```bash
composer require paqtcom/coding-standards --dev
```*Let op!* Hiermee zijn nog niet alle benodigde tools geïnstalleerd. Deze package bevat enkel configuratie bestanden.
## Configuratie
### phpcs
Voeg een `phpcs.xml` bestand toe aan je project met de volgende minimale configuratie:
```xmlPAQT.com ruleset for PHP projects.
app
src
...
```
```shell
vendor/bin/phpcs -ps
```Veel van de beschikbare [phpcs configuratie](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset) kan worden
gebruikt voor onder andere het toevoegen van mappen die gescand of genegeerd moeten worden of wanneer voorgedefinieerde
regels aangepast of genegeerd moeten worden:```xml
database/*
```
### php-cs-fixer
Voeg een `.php-cs-fixer.php` bestand toe aan je project met de volgende minimale configuratie:
```php
in(__DIR__)
->path([
'/^app/',
'/^src/',
...
]);/** @var PhpCsFixer\Config $config */
$config = include 'vendor/paqtcom/coding-standards/rules/php-cs-fixer.php';return $config->setFinder($finder);
``````shell
vendor/bin/php-cs-fixer fix --dry-run --diff --show-progress=dots --verbose
```Veel van de beschikbare [php-cs-fixer regels](https://mlocati.github.io/php-cs-fixer-configurator/) kunnen worden gebruikt
om de voorgedefinieerde regels aan te passen of extra regels toe te voegen:```php
return $config->setFinder($finder)
->setRules(
array_merge($config->getRules(), [
'no_space_around_double_colon' => false,
])
);
```> **Let op**: het gebruik van `array_merge($config->getRules(), [])` is nodig om de voorgedefinieerde regels aan te vullen.
### phpmd
Voeg een `phpmd.xml` bestand toe aan je project met de volgende minimale configuratie:
```xml
```
```shell
vendor/bin/phpmd app src ... phpmd.xml
```
Veel van de beschikbare [phpmd regels](https://phpmd.org/rules/index.html) kunnen worden gebruikt in de
[configuratie](https://phpmd.org/documentation/creating-a-ruleset.html#adding-rule-references-to-the-new-ruleset-xml-file)
om bijvoorbeeld de voorgedefinieerde regels aan te passen of extra regels toe te voegen:```xml
1
```
### phpstan
Voeg een `phpstan.neon` bestand toe aan je project met de volgende minimale configuratie:
```neon
includes:
- ./vendor/paqtcom/coding-standards/rules/phpstan.neonparameters:
paths:
- app
- src
...
```Of wanneer het gaat om een Laravel project:
```neon
includes:
- ./vendor/paqtcom/coding-standards/rules/larastan.neonparameters:
paths:
- app
- src
...
``````shell
vendor/bin/phpstan analyze --memory-limit=2G
```Veel van de beschikbare [phpstan configuratie](https://phpstan.org/config-reference) kan worden gebruikt voor het aanpassen
van onder andere voorgedefinieerde regels of eventueel errors die genegeerd mogen worden:```neon
parameters:
ignoreErrors:
- '#Parameter \#3 \$count of method Illuminate\\Database\\Eloquent\\Builder(.*)::has\(\) expects int, Illuminate\\Database\\Query\\Expression given.#'checkUnionTypes: false
```