PHPackages                             ixnode/php-quality-suite - 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. ixnode/php-quality-suite

ActiveLibrary

ixnode/php-quality-suite
========================

PHP Quality Suite - A zero-config PHP quality toolbox combining Rector, PHPStan, and PHPMD. Run static analysis and automated refactorings with simple commands.

0.1.24(5mo ago)189↓100%MITPHPPHP ^8.0

Since Sep 21Pushed 5mo agoCompare

[ Source](https://github.com/ixnode/php-quality-suite)[ Packagist](https://packagist.org/packages/ixnode/php-quality-suite)[ RSS](/packages/ixnode-php-quality-suite/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (4)Versions (26)Used By (0)

PHP Quality Suite
=================

[](#php-quality-suite)

[![Release](https://camo.githubusercontent.com/f57bd33d9a33b6cc4656e0963d0877397fd918b407faa89289726086403e326c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f69786e6f64652f7068702d7175616c6974792d7375697465)](https://github.com/ixnode/php-quality-suite/releases)[![](https://camo.githubusercontent.com/459693e48bdfa19401401c8d4b5d1ceb4398687159e394b8925c8e408fa152e2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f69786e6f64652f7068702d7175616c6974792d7375697465)](https://github.com/twelvepics-com/php-calendar-builder/releases)[![PHP](https://camo.githubusercontent.com/1bbf13029689f8044cc3080b0010efacbee3d0ccebdcf17e9538990f0f53a6c8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e302d3737376262332e7376673f6c6f676f3d706870266c6f676f436f6c6f723d7768697465266c6162656c436f6c6f723d353535353535267374796c653d666c6174)](https://www.php.net/supported-versions.php)[![Rector - Instant Upgrades and Automated Refactoring](https://camo.githubusercontent.com/b24f3facc2cbea325447c29540bb73d84b89d54f5198d88c699414783b2cf4d5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f526563746f722d253545322e312d3733613136352e7376673f7374796c653d666c6174)](https://github.com/rectorphp/rector)[![LICENSE](https://camo.githubusercontent.com/680f4daadcbfa64bf2df5b191f96b66fe3562dae734e6dba81bc253ea88e12de/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f69786e6f64652f7068702d7175616c6974792d7375697465)](https://github.com/ixnode/php-quality-suite/blob/master/LICENSE)

🚀 **Zero-config. Out-of-the-box. Instant code quality.**

The PHP Quality Suite combines [Rector](https://github.com/rectorphp/rector), [PHPStan](https://github.com/phpstan/phpstan), and [PHPMD](https://phpmd.org/) into a single developer-friendly toolbox.

Run static analysis and automated refactorings with simple CLI commands – no configuration required. Just:

```
vendor/bin/php-quality-suite rector --level=0 --dry-run
```

✔️ No setup needed – works immediately after installation
✔️ Instant upgrades – migrate between PHP or Symfony versions
✔️ Quality built-in – type safety, dead code removal, coding standards

1. Installation
---------------

[](#1-installation)

```
composer require --dev ixnode/php-quality-suite
```

```
vendor/bin/php-quality-suite -V
```

```
php-quality-suite 0.1.0 (2025-09-20 19:59:14) - Björn Hempel
```

2. Quick start
--------------

[](#2-quick-start)

Make sure your `composer.json` defines the target PHP version for analysis, e.g.:

```
{
    "require": {
        "php": "^8.0"
    }
}
```

Analyze your codebase right away:

```
vendor/bin/php-quality-suite rector --include=src --level=0 --dry-run
```

✅ Runs instantly
✅ No setup required
✅ Safe first checks without modifying files

Remove `--dry-run` once you’re ready to apply the fixes automatically.

> **Hint**: By default, this example uses the src directory. For customizing paths or excluding directories, see the following chapter **Preparation**.

3. Preparation
--------------

[](#3-preparation)

### PHP Version

[](#php-version)

The static analysis tools determine the target PHP version from your project's `composer.json`.

Make sure your `composer.json` contains the desired PHP version in the `require.php` field, for example:

```
{
    "require": {
        "php": "^8.0"
    }
}
```

This setting defines the PHP version Rector and PHPStan will use for parsing and refactoring. Adjust this value according to the PHP version you want to migrate to or validate against.

### Configuration

[](#configuration)

The **PHP Quality Suite** needs to know which paths to analyze and which ones to ignore. The same applies to the rules that are used or ignored.

A template configuration file is included in this package:

```
cp vendor/ixnode/php-quality-suite/config/pqs.yml.dist pqs.yml
```

Now adapt the `pqs.yml` file to your project structure and the analyzation target.

#### Example `pqs.yml`

[](#example-pqsyml)

```
paths-included:
    src: src
    tests: tests
    vendor_gui: lib/VendorGuiBundle

paths-excluded:
    - src/Legacy
    - src/Experimental

rules-included:
    ContinueToBreakInSwitchRector: Rector\Php52\Rector\Switch_\ContinueToBreakInSwitchRector
    TernaryToElvisRector: Rector\Php53\Rector\Ternary\TernaryToElvisRector

rules-excluded:
    - Rector\Php74\Rector\Closure\ClosureToArrowFunctionRector # always
    - Rector\Php52\Rector\Property\VarToPublicPropertyRector: 8.1
    - Rector\Renaming\Rector\MethodCall\RenameMethodRector:symfony 6.4
    - Rector\Renaming\Rector\Name\RenameClassRector:symfony # for all Symfony versions
```

- `paths-included`: Directories or files to be analyzed. You can assign keys (e.g. `vendor_gui`) to reference them in CLI commands.
- `paths-excluded`: Directories or files that are always excluded from analysis. These paths are passed to Rector automatically. If no rule is specified, the default rules of PHP or Symfony are applied.
- `rules-included`: Rector rules to be analyzed. You can assign keys (e.g. `TernaryToElvisRector`) to reference them in CLI commands.
- `rules-excluded`: Rector rules that should not be applied. The behavior depends on optional tagging (`php`, `symfony`) and version conditions:
    - **Rules without tagging and without version**
        - → Exclusion is always applied.
    - **Rules without tagging but with version**
        - → Exclusion is applied only if the current PHP version matches the condition; otherwise, the exclusion is ignored.
    - **Rules with php tagging and without version**
        - → Same as rules without tagging and without version.
    - **Rules with php tagging and with version**
        - → Same as rules without tagging but with version.
    - **Rules with symfony tagging and without version**
        - → Exclusion is applied only if a Symfony version is being analyzed; otherwise, the exclusion is ignored.
    - **Rules with symfony tagging and with version**
        - → Exclusion is applied only if a Symfony version is being analyzed and it matches the condition; otherwise, the exclusion is ignored.

#### Notes

[](#notes)

- All paths are relative to the project root.
- You can include both directories and single files.
- If `pqs.yml` is missing, the default configuration `pqs.yml.dist` from the package will be used.

#### Usage with `--include`

[](#usage-with---include)

By default, all paths listed under paths are analyzed. You can restrict the analysis to specific entries using the `--include` option: `--include=src,vendor_gui`. This will analyze only the `src` and `vendor_gui` directories, while the excluded paths from `pqs.yml` are always respected.

4. Best Practices
-----------------

[](#4-best-practices)

See:

- [Best Practices with Rector](docs/best-practices/rector.md)
- [Best Practices with PHPStan](docs/best-practices/rector.md)
- [Best Practices with PHP Mess detector](docs/best-practices/rector.md)

5. Development
--------------

[](#5-development)

```
git clone git@github.com:ixnode/php-quality-suite.git && cd php-quality-suite
```

```
composer install
```

```
composer test
```

6. Examples
-----------

[](#6-examples)

### Rector

[](#rector)

```
vendor/bin/php-quality-suite rector --level=0 --dry-run
```

### PHPStan

[](#phpstan)

```
bin/php-quality-suite phpstan --include=src,tests --level=2
```

### PHPCS

[](#phpcs)

```
vendor/bin/php-quality-suite phpcs --include=src,tests --rules=no_whitespace_in_blank_line --dry-run
```

7. License
----------

[](#7-license)

This tool is licensed under the MIT License - see the [LICENSE](/LICENSE) file for details.

###  Health Score

35

—

LowBetter than 81% of packages

Maintenance72

Regular maintenance activity

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~1 days

Total

25

Last Release

160d ago

### Community

Maintainers

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

---

Top Contributors

[![bjoern-hempel](https://avatars.githubusercontent.com/u/5531245?v=4)](https://github.com/bjoern-hempel "bjoern-hempel (55 commits)")

---

Tags

phpcodequalitystaticrectoranalizisdepricated

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ixnode-php-quality-suite/health.svg)

```
[![Health](https://phpackages.com/badges/ixnode-php-quality-suite/health.svg)](https://phpackages.com/packages/ixnode-php-quality-suite)
```

###  Alternatives

[nunomaduro/phpinsights

Instant PHP quality checks from your console.

5.6k10.5M378](/packages/nunomaduro-phpinsights)

PHPackages © 2026

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