PHPackages                             eckinox/eckinox-cs - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. eckinox/eckinox-cs

ActiveEckinox-metapackage[Testing &amp; Quality](/categories/testing)

eckinox/eckinox-cs
==================

A very opinionated CS/linting setup for PHP projects.

3.0.1(2y ago)211.3k↓50%[1 issues](https://github.com/eckinox/eckinox-cs/issues)3MITPHPPHP &gt;=8.0CI passing

Since Aug 20Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/eckinox/eckinox-cs)[ Packagist](https://packagist.org/packages/eckinox/eckinox-cs)[ RSS](/packages/eckinox-eckinox-cs/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (44)Used By (3)

Eckinox CS: linting and coding standards
========================================

[](#eckinox-cs-linting-and-coding-standards)

Getting started
---------------

[](#getting-started)

To add the coding standards checkers and linters to your PHP project, follow the instructions below:

1. Make sure you don't have any uncommited files in your project.
    This package will add files to your project, so you'll likely want to commit all of these all at once.
2. Add the package to your project with Composer using the command below: ```
    composer require --dev eckinox/eckinox-cs
    ```

    The package will automatically add all of the configuration files and utility scripts you'll need to your project.
3. Follow any additional instructions provided in the CLI.
4. Run the following command to install Javascript dependencies: ```
    npm install
    ```
5. Ensure scripts are executable: ```
    chmod +x DEV/**/*
    ```
6. Commit the files to your project: ```
    git add --a && git commit -m "Adds coding standards and linting checks via eckinox/eckinox-cs"
    ```
7. Enjoy!

What's included
---------------

[](#whats-included)

This package is a like a metapackage, but with a little sugar on top.

Not only does it add other PHP dependencies via Composer, but it also:

- Adds JS dependencies.
- Creates configuration files.
- Adds shell scripts to facilitate usage of the tools.
- Adds a Git pre-commit hook.
- Adds a Github actions workflow.

Here's a bit of information about all of that.

### Tools and packages

[](#tools-and-packages)

Here are the tools that are included and configured in this package:

ToolConfigGit-aware[EditorConfig](https://editorconfig.org/)
Helps maintain consistent coding styles across various editors and IDEs.`.editorconfig`N/A[PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)
A tool to automatically fix PHP Coding Standards issues`.php_cs.dist`✅[PHPStan](https://phpstan.org/)
PHP Static Analysis Tool - discover bugs in your code without running it!`phpstan.neon`✅[PHPMD](https://phpmd.org/)
PHP Mess Detector`.phpmd.xml`✅[Twig-CS-Fixer](https://github.com/VincentLanglet/Twig-CS-Fixer)
The missing checkstyle for twig!`.twig-cs-fixer.dist.php`❌[ESLint](https://eslint.org/)
Find and fix problems in your JavaScript code`.eslintrc.json` `.eslintignore`❌[CSS stylelint](https://stylelint.io/)
A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.`.stylelintrc.json`❌The *Git-aware* column indicates tools whose provided execution script (located in `DEV/cs/`) will only take into account staged files, instead of running on every file in your project every time.

### Configuration files

[](#configuration-files)

The packge creates configuration files for every tool it adds.

These configuration files match Eckinox's coding standards, and should not be changed manually.
Changed files could be overwritten in later updates of `eckinox/eckinox-cs`.

### Pre-commit hook for Git

[](#pre-commit-hook-for-git)

The package includes a pre-commit script that will execute all of the provided tools to check for potential errors and non-standard code.

If you don't have a pre-commit script already, the package will automatically set up this one (as a symbolic link) when you install the package.
If you already have a pre-commit, you will have to merge the two manually.

Another pre-commit script ( `pre-commit-with-bypass` ) is available if you need to be able to commit when somes test fail. After each tool if some test fail, the script will ak if you want to continue. The script need to be installed manually.

### Github actions workflow

[](#github-actions-workflow)

To ensure your project is always respecting the standards, this package adds a workflow for Github Actions that runs every included tool on your codebase.

This allows project members and maintainers to view the status of every branch and pull request, right in Github.

#### Authentication for private repositories

[](#authentication-for-private-repositories)

If you are using private Github repositories via Composer, set up the secrets for HTTP authentication as described in [php-actions/composer's documentation](https://github.com/php-actions/composer#http-basic-authentication).

The workflow included by eckinox-cs already includes the steps necessary to retrieve and use that authentication token, if it is present.

###  Health Score

43

—

FairBetter than 90% of packages

Maintenance47

Moderate activity, may be stable

Popularity27

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 76.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~23 days

Recently: every ~82 days

Total

42

Last Release

751d ago

Major Versions

0.2.9 → 1.0.02021-08-23

1.7.1 → 2.0.02023-06-20

2.0.1 → 3.0.02024-04-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca11aff13a18ad8ee04469ec53cb79bf2c10dd95ea73d77f84e2582fa67efbf8?d=identicon)[eckinox](/maintainers/eckinox)

---

Top Contributors

[![EmilePerron](https://avatars.githubusercontent.com/u/9383532?v=4)](https://github.com/EmilePerron "EmilePerron (70 commits)")[![Emma1987](https://avatars.githubusercontent.com/u/28593632?v=4)](https://github.com/Emma1987 "Emma1987 (14 commits)")[![VincentGrenon](https://avatars.githubusercontent.com/u/84418961?v=4)](https://github.com/VincentGrenon "VincentGrenon (4 commits)")[![joshmenard](https://avatars.githubusercontent.com/u/43248805?v=4)](https://github.com/joshmenard "joshmenard (2 commits)")[![jeandanyel](https://avatars.githubusercontent.com/u/15878787?v=4)](https://github.com/jeandanyel "jeandanyel (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/eckinox-eckinox-cs/health.svg)

```
[![Health](https://phpackages.com/badges/eckinox-eckinox-cs/health.svg)](https://phpackages.com/packages/eckinox-eckinox-cs)
```

###  Alternatives

[drupal/core-dev

require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.

2021.0M275](/packages/drupal-core-dev)[wp-cli/wp-cli-tests

WP-CLI testing framework

422.7M87](/packages/wp-cli-wp-cli-tests)[youwe/testing-suite

Contains Youwe's default testing packages for php.

13176.9k8](/packages/youwe-testing-suite)[sci3ma/symfony-grumphp

Configured GrumPHP with bunch of tools for static code analysis Symfony Framework

196.7k](/packages/sci3ma-symfony-grumphp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
