An open API service indexing awesome lists of open source software.

https://github.com/netlogix/coding-guidelines-php


https://github.com/netlogix/coding-guidelines-php

php

Last synced: about 2 months ago
JSON representation

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',
]
);
};

```