https://github.com/netlogix/coding-guidelines-php
https://github.com/netlogix/coding-guidelines-php
php
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/netlogix/coding-guidelines-php
- Owner: netlogix
- License: mit
- Created: 2022-09-18T19:20:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-03T12:32:40.000Z (about 1 year ago)
- Last Synced: 2025-03-15T03:51:16.162Z (2 months ago)
- Topics: php
- Language: PHP
- Size: 26.4 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# netlogix coding guidelines for PHP
## Installation
- Install the Composer Package via:
```bash
composer require --dev netlogix/coding-guidelines-php
```- Import the `CodeStyleSettings.xml` into your PhpStorm IDE using:
Settings/Preferences > Editor > Code Style > PHP > ⚙️ > Import Scheme...## Basic configuration
Once installed, add a `ecs.php` file next to your composer.json:```php
configure($ecsConfig);$ecsConfig->paths(
[
__DIR__ . '/src',
]
);
};
```Add composer scripts for `lint` and `lint-fix`:
```json
{
"name": "my/package",
"require-dev": {
"netlogix/coding-guidelines-php": "@dev"
},
"scripts": {
"lint": "ecs check",
"lint-fix": "ecs check --fix"
}
}
```You can then use `composer run lint` for linting and `composer run lint-fix` to fix issues where possible.
## Configuration for Neos / Flow projects
There is a special ruleset for Neos or Flow projects called `DefaultFlow`. You can simply use that instead of `DefaultPhp` in your `ecs.php`:```php
configure($ecsConfig);$ecsConfig->paths(
[
__DIR__ . '/DistributionPackages',
]
);
};
```## Customizing linting rules
To adjust the linting rules for a specific project, you can use the getters provided by our rulesets in your `ecs.php`:```php
configure($ecsConfig);// Combine rules of DefaultPhp, DefaultFlow and the FinalClassFixer
$ecsConfig->rules(
array_merge(
DefaultPhp::getRules(),
DefaultFlow::getRules(),
[
\PhpCsFixer\Fixer\ClassNotation\FinalClassFixer::class,
]
)
);
// Combine skips of DefaultPhp, DefaultFlow and the OrderedClassElementsFixer
$ecsConfig->skip(
array_merge(
DefaultPhp::getSkips(),
DefaultFlow::getSkips(),
[
\PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer::class,
]
)
);$ecsConfig->paths(
[
__DIR__ . '/src',
]
);
};```