PHPackages                             aeliot/php-cs-fixer-baseline - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. aeliot/php-cs-fixer-baseline

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

aeliot/php-cs-fixer-baseline
============================

Baseline for PHP CS Fixer

v3.0.0(2w ago)710.2k↓72.8%2MITPHPPHP ^8.0CI passing

Since May 30Pushed 2w ago1 watchersCompare

[ Source](https://github.com/Aeliot-Tm/php-cs-fixer-baseline)[ Packagist](https://packagist.org/packages/aeliot/php-cs-fixer-baseline)[ RSS](/packages/aeliot-php-cs-fixer-baseline/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (24)Versions (19)Used By (0)

Baseline for PHP CS Fixer
-------------------------

[](#baseline-for-php-cs-fixer)

[![GitHub Release](https://camo.githubusercontent.com/536b183ba32f498a01151338d57c63f81fa9e52f17bb48c5cba998986c642a49/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f41656c696f742d546d2f7068702d63732d66697865722d626173656c696e653f6c6162656c3d52656c65617365266c6162656c436f6c6f723d626c61636b)](https://packagist.org/packages/aeliot/php-cs-fixer-baseline)[![Testing](https://github.com/Aeliot-Tm/php-cs-fixer-baseline/actions/workflows/automated-testing.yaml/badge.svg?branch=main)](https://github.com/Aeliot-Tm/php-cs-fixer-baseline/actions/workflows/automated-testing.yaml?query=branch%3Amain)[![Security Audit](https://github.com/Aeliot-Tm/php-cs-fixer-baseline/actions/workflows/security-audit.yaml/badge.svg?branch=main)](https://github.com/Aeliot-Tm/php-cs-fixer-baseline/actions/workflows/security-audit.yaml?query=branch%3Amain)[![GitHub License](https://camo.githubusercontent.com/14a3dd274e267850acfcc7f611ec573e0fc54162ab67b8fa8cdffa83d9e01bdd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f41656c696f742d546d2f7068702d63732d66697865722d626173656c696e653f6c6162656c3d4c6963656e7365266c6162656c436f6c6f723d626c61636b)](LICENSE)

It's simple baseline for [PHP CS Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer).

**Pros:**

- It helps to start using of PHP CS Fixer without preparing of all project. Case you don't need to fix them all at the beginning. Only new &amp; changed on each iteration.
- It may speed up pipelines on CI for big projects.

Base project has requires for it but not implemented yet: [PHP-CS-Fixer/PHP-CS-Fixer#6451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6451)

So, it's some work around till baseline will be implemented in the PHP CS Fixer.

### Compatibility

[](#compatibility)

This package requires `friendsofphp/php-cs-fixer: ^3.0` (tested with 3.0.x and 3.95.x).

PHP CS FixerSymfony (transitive)3.0.x4.4 or 5.x3.50+5.4+3.95.x5.4+, 6.x, 7.x, or 8.xWhen PHP CS Fixer 3.95 is installed, Composer resolves Symfony 5.4 or newer. Projects on PHP CS Fixer 3.0.x can still use Symfony 4.4.

### Installation

[](#installation)

There are few ways of installation:

1. [Phive](#phive)
2. [Composer](#composer)
3. [Composer bin plugin](#composer-bin-plugin)
4. [Downloading of PHAR directly](#downloading-of-phar-directly)

#### Phive

[](#phive)

You can install this package with [Phive](https://phar.io/). It permits you to install package by one console command without extending dependencies in your composer-files.

```
phive install php-cs-fixer-baseline
```

Sometimes you may need to update database of package-aliases of PHIVE. See [issue #3](https://github.com/Aeliot-Tm/php-cs-fixer-baseline/issues/3)So, just call console command for it:

```
phive update-repository-list
```

To upgrade this package use the following command:

```
phive update php-cs-fixer-baseline
```

#### Composer

[](#composer)

You can install this package with [Composer](https://getcomposer.org/doc/03-cli.md#install-i):

```
composer require --dev aeliot/php-cs-fixer-baseline
```

#### Composer bin plugin

[](#composer-bin-plugin)

You can install this package in an isolated `vendor-bin` namespace with [bamarni/composer-bin-plugin](https://github.com/bamarni/composer-bin-plugin). It helps when PHP CS Fixer dependencies conflict with your project vendors.

1. Enable the plugin in `composer.json`: ```
    {
        "config": {
            "allow-plugins": {
                "bamarni/composer-bin-plugin": true
            }
        }
    }
    ```
2. Install the plugin: ```
    composer require --dev bamarni/composer-bin-plugin
    ```
3. Install this package into a bin namespace: ```
    composer bin pcsf-baseline require --dev aeliot/php-cs-fixer-baseline
    ```
4. Use the CLI as usual: ```
    vendor/bin/pcsf-baseline
    ```

When `bin-links` is disabled, run the binary from `vendor-bin/pcsf-baseline/vendor/bin/pcsf-baseline`or add a Composer script alias.

Because PHP CS Fixer loads your project config in a separate process, require the bin autoloader in `.php-cs-fixer.dist.php` before using `FilterFactory`:

```
require_once __DIR__ . '/vendor-bin/pcsf-baseline/vendor/autoload.php';
```

Add `/vendor-bin/**/vendor/` to `.gitignore` and consider `extra.bamarni-bin.forward-command = true`so `composer install` also installs bin namespaces.

#### Downloading of PHAR directly

[](#downloading-of-phar-directly)

Download PHAR directly to root directory of the project or in another place as you wish.

```
# Do adjust the URL if you need a release other than the latest
wget -O pcsf-baseline.phar "https://github.com/Aeliot-Tm/php-cs-fixer-baseline/releases/latest/download/pcsf-baseline.phar"
wget -O pcsf-baseline.phar.asc "https://github.com/Aeliot-Tm/php-cs-fixer-baseline/releases/latest/download/pcsf-baseline.phar.asc"

# Check that the signature matches
gpg --verify pcsf-baseline.phar.asc pcsf-baseline.phar

# Check the issuer (the ID can also be found from the previous command)
gpg --keyserver hkps://keys.openpgp.org --recv-keys 9D0DD6FCB92C84688B777DF59204DEE8CAE9C22C

rm pcsf-baseline.phar.asc
chmod +x pcsf-baseline.phar
```

### Configuration

[](#configuration)

1. Extract `Finder` from the config of PHP CS Fixer to the separate file. It expects `.php-cs-fixer-finder.php` at the root of the project.
2. Add filtering of files detected by Finder.

    ```
    use Aeliot\PhpCsFixerBaseline\Service\FilterFactory;

    $finder->filter((new FilterFactory())->createFilter(__DIR__ . '/.php-cs-fixer-baseline.json', $config));
    ```

    Filter options (optional):

    ```
    use Aeliot\PhpCsFixerBaseline\Dto\FilterOptions;
    use Aeliot\PhpCsFixerBaseline\Service\FilterFactory;

    $finder->filter((new FilterFactory())->createFilter(
        __DIR__ . '/.php-cs-fixer-baseline.json',
        $config,
        new FilterOptions(
            mode: FilterFactory::MODE_MENTIONED,
            workdir: '/path/to/project',
        ),
    ));
    ```

    ModeDescription`by_hash` (default)Skip files from baseline only when their content hash matches`mentioned`Skip all files listed in baseline, even if they were modified
3. Autoload classes from PHAR (optional). If you use this project as PHAR file, you need to require autoloader of it to use provided filter. Do it in the main config file of PHP CS Fixer (`.php-cs-fixer.dist.php`)

    ```
    Phar::loadPhar('/path/to/pcsf-baseline.phar', 'pcsf-baseline.phar');
    require_once 'phar://pcsf-baseline.phar/vendor/autoload.php';
    ```

### Using

[](#using)

#### Commands

[](#commands)

CommandDescription`generate` (default)Generate or regenerate the full baseline from Finder`update`Update hash for files already present in baseline1. Generate baseline. Just call script without options when all config files uses default names.
    - Call PHAR ```
        php pcsf-baseline.phar
        ```
    - Or call script installed via Composer: ```
        vendor/bin/pcsf-baseline
        ```

    See options below. You can see how it is configured in this project.
2. After fixing files with PHP CS Fixer, update their hash in baseline without regenerating it entirely: ```
    vendor/bin/pcsf-baseline update src/Foo.php src/Bar.php
    ```

    The baseline file must already exist. Only files **already listed** in baseline are updated; `config_hash` is not recalculated.
3. Use PHP CS Fixer as usual. All files mentioned in the baseline will be scip till they are not changed.

This script store relative paths to files in baseline file by default. It is useful when baseline used in different environments.

### Options of `generate` command

[](#options-of-generate-command)

Short nameLong nameDescriptionDefault valueaabsoluteStore absolute paths in baseline file. It does not expect any value.bbaselinePathname of baseline file..php-cs-fixer-baseline.jsoncconfigPathname of config file..php-cs-fixer.dist.phpdconfig-dirConfig files path''ffinderPathname of file with definition of Finder..php-cs-fixer-finder.phpwworkdirWorking directory.invalid-onlyInclude in baseline only files that would be changed by PHP CS Fixer (dry-run).Options `baseline`, `config`, `finder` can be absolute or related or omitted at all. In the last case it expects that files are in the root directory of project.

You can use option `workdir` to customize path to working directory. Otherwise, directory where the script called is used. The same with the filter for PHP CS Fixer. You may customize working directory by third option for filter factory.

Pass option `absolute` when you want to force saving of absolute paths to files of your project in baseline. It cannot be used with option `workdir`.

Use option `invalid-only` to generate a baseline only for files that currently violate PHP CS Fixer rules. This is useful when you want to adopt a baseline gradually: compliant files are not added, so PHP CS Fixer will still check them. The command always overwrites the whole baseline file. If every file is already compliant, the result is an empty baseline (`Ok, 0 files added to baseline`). Detection runs `php-cs-fixer check`via CLI (`vendor/bin/php-cs-fixer` by default). Override the binary path with the `PHP_CS_FIXER_BINARY`environment variable if needed.

### Options of `update` command

[](#options-of-update-command)

Short nameLong nameDescriptionDefault valueaabsoluteBaseline uses absolute paths (must match existing baseline)bbaselinePathname of baseline file.php-cs-fixer-baseline.jsondconfig-dirConfig files path prefix''wworkdirWorking directoryFile paths are passed as **arguments** (one or more):

```
vendor/bin/pcsf-baseline update src/Service/Foo.php src/Service/Bar.php
```

### Restrictions for using of relative paths

[](#restrictions-for-using-of-relative-paths)

1. Option `workdir` MUST be absolute. You cannot use "double dots" in it.
2. Used function `realpath()` for normalisation of paths of files returned by `Finder`. For proper cutting of `workdir`out of file path to make it relative. It may return unexpected result based on current user permissions. Look for restrictions of this function in [official documentation](https://www.php.net/manual/en/function.realpath.php)of PHP.
3. When the function `realpath()` returns an empty result or path of file returned by `Finder` is not from working directory then path stored "as is".

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance96

Actively maintained with recent releases

Popularity32

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.3% 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 ~57 days

Recently: every ~155 days

Total

14

Last Release

18d ago

Major Versions

v1.2.0 → v2.0.02024-09-03

v2.1.4 → v3.0.02026-06-15

PHP version history (2 changes)v1.0.0PHP ^8.2

v3.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/56d81f2702c20990da8d701ba1083e398c94cfcadfdd27b1a90e7791aac92053?d=identicon)[aeliot-tm](/maintainers/aeliot-tm)

---

Top Contributors

[![Aeliot-Tm](https://avatars.githubusercontent.com/u/8513062?v=4)](https://github.com/Aeliot-Tm "Aeliot-Tm (236 commits)")[![evgenij-vy](https://avatars.githubusercontent.com/u/120460020?v=4)](https://github.com/evgenij-vy "evgenij-vy (9 commits)")

---

Tags

baselinephp-cs-fixerphp-cs-fixer-baselinephp-cs-fixerbaseline

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/aeliot-php-cs-fixer-baseline/health.svg)

```
[![Health](https://phpackages.com/badges/aeliot-php-cs-fixer-baseline/health.svg)](https://phpackages.com/packages/aeliot-php-cs-fixer-baseline)
```

###  Alternatives

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k101.8M2.2k](/packages/behat-behat)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M203](/packages/sulu-sulu)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)

PHPackages © 2026

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