PHPackages                             fox91/dev-tools - 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. fox91/dev-tools

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

fox91/dev-tools
===============

fox91 Dev Tools

v0.11.0(1y ago)23.2k[2 PRs](https://github.com/fox91/php-dev-tools/pulls)MITPHPPHP ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0CI passing

Since Apr 11Pushed 5mo ago1 watchersCompare

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

READMEChangelogDependencies (9)Versions (48)Used By (0)

fox91 PHP Dev Tools
===================

[](#fox91-php-dev-tools)

[![Latest version](https://camo.githubusercontent.com/12fe932be032fc914d2ad00df1b3719f4d2ca0056512570b15fa2f14314ffa6d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666f7839312f6465762d746f6f6c732e7376673f636f6c6f72423d303037454336)](https://packagist.org/packages/fox91/dev-tools)[![Downloads](https://camo.githubusercontent.com/a91119e7032188e8db2c6f7e1fccb612ad864cc0711a13171d3a97174c911e61/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666f7839312f6465762d746f6f6c732e7376673f636f6c6f72423d303037454336)](https://packagist.org/packages/fox91/dev-tools)[![Build status](https://github.com/fox91/php-dev-tools/workflows/php-ci/badge.svg?branch=main)](https://github.com/fox91/php-dev-tools/actions?query=workflow%3Aphp-ci+branch%3Amain)

Compatible with PHP `8.1`, `8.2`, `8.3` and `8.4`.

Included tools
--------------

[](#included-tools)

- [PHP Parallel Lint](https://packagist.org/packages/php-parallel-lint/php-parallel-lint)
- [PHP\_CodeSniffer](https://packagist.org/packages/squizlabs/php_codesniffer)
    - [`dealerdirect/phpcodesniffer-composer-installer`](https://packagist.org/packages/dealerdirect/phpcodesniffer-composer-installer)
    - [`fox91/coding-standard`](https://packagist.org/packages/fox91/coding-standard)
- [PHPUnit](https://packagist.org/packages/phpunit/phpunit)
- [Psalm](https://packagist.org/packages/vimeo/psalm)
    - [`psalm/plugin-phpunit`](https://packagist.org/packages/psalm/plugin-phpunit)
- [Rector](https://packagist.org/packages/rector/rector)

Optional tools
--------------

[](#optional-tools)

- [PHPStan](https://packagist.org/packages/phpstan/phpstan)
    - [`brainbits/phpstan-rules`](https://packagist.org/packages/brainbits/phpstan-rules)
    - [`ergebnis/phpstan-rules`](https://packagist.org/packages/ergebnis/phpstan-rules)
    - [`korbeil/phpstan-generic-rules`](https://packagist.org/packages/korbeil/phpstan-generic-rules)
    - [`phpstan/extension-installer`](https://packagist.org/packages/phpstan/extension-installer)
    - [`phpstan/phpstan-beberlei-assert`](https://packagist.org/packages/phpstan/phpstan-beberlei-assert)
    - [`phpstan/phpstan-deprecation-rules`](https://packagist.org/packages/phpstan/phpstan-deprecation-rules)
    - [`phpstan/phpstan-phpunit`](https://packagist.org/packages/phpstan/phpstan-phpunit)
    - [`phpstan/phpstan-strict-rules`](https://packagist.org/packages/phpstan/phpstan-strict-rules)
    - [`thecodingmachine/phpstan-safe-rule`](https://packagist.org/packages/thecodingmachine/phpstan-safe-rule)
    - [`thecodingmachine/phpstan-strict-rules`](https://packagist.org/packages/thecodingmachine/phpstan-strict-rules)
- [Safe PHP](https://packagist.org/packages/thecodingmachine/safe)

Installation
------------

[](#installation)

```
composer require --dev fox91/dev-tools
```

### Config example

[](#config-example)

Add following code to your `composer.json`:

```
"scripts": {
    "cs-e:test": "phpcs --colors -n",
    "cs:fix": "phpcbf --colors",
    "cs:test": "phpcs --colors",
    "lint:test": "parallel-lint --no-progress --blame --exclude vendor .",
    "phpstan:test": "phpstan analyse --no-progress --ansi --memory-limit 128M",
    "psalm:test": "psalm --no-progress --stats --show-info=true --show-snippet",
    "rector:fix": "rector --ansi process --no-progress-bar",
    "rector:test": "rector --ansi process --dry-run --no-progress-bar",
    "unit:test": "phpunit",
    "fix": [
        "@rector:fix",
        "@cs:fix"
    ],
    "test": [
        "@lint:test",
        "@rector:test",
        "@cs:test",
        "@psalm:test",
        "@unit:test"
    ]
},
"scripts-descriptions": {
    "cs-e:test": "Run PHP_CodeSniffer tests, show only errors",
    "cs:fix": "Run PHP_CodeSniffer fixes",
    "cs:test": "Run PHP_CodeSniffer tests",
    "fix": "Run all fixes!",
    "lint:test": "Run PHP Parallel Lint tests",
    "phpstan:test": "Run PHPStan tests",
    "psalm:test": "Run Psalm tests",
    "rector:fix": "Run Rector fixes",
    "rector:test": "Run Rector tests",
    "test": "Run all tests!",
    "unit:test": "Run PHPUnit tests"
}
```

Copy default configs to the root of your project:

```
cp \
  vendor/fox91/dev-tools/configs/.editorconfig \
  vendor/fox91/dev-tools/configs/.gitignore \
  vendor/fox91/dev-tools/configs/.phpcs.xml.dist \
  vendor/fox91/dev-tools/configs/gitattributes.txt \
  vendor/fox91/dev-tools/configs/phpdoc.dist.xml \
  vendor/fox91/dev-tools/configs/phpstan.neon.dist \
  vendor/fox91/dev-tools/configs/phpunit.xml.dist \
  vendor/fox91/dev-tools/configs/psalm.xml.dist \
  vendor/fox91/dev-tools/configs/rector.php \
  .
mv gitattributes.txt .gitattributes
```

Usage
-----

[](#usage)

```
composer test
docker run --rm -v "$(pwd)":/data:rw phpdoc/phpdoc run
```

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance59

Moderate activity, may be stable

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 57.1% 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 ~32 days

Recently: every ~27 days

Total

44

Last Release

456d ago

PHP version history (7 changes)v0.1.0PHP ^7.3 | ^8.0

v0.1.2PHP ^7.3 || ^8.0

v0.4.1PHP ^7.3 || ~8.0.0

v0.4.2PHP ^7.4 || ~8.0.0 || ~8.1.0

v0.7.0PHP ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0

v0.9.1PHP ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0

v0.10.2PHP ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/206782?v=4)[Andrea Falco](/maintainers/fox91)[@fox91](https://github.com/fox91)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (72 commits)")[![fox91](https://avatars.githubusercontent.com/u/206782?v=4)](https://github.com/fox91 "fox91 (54 commits)")

---

Tags

php

### Embed Badge

![Health badge](/badges/fox91-dev-tools/health.svg)

```
[![Health](https://phpackages.com/badges/fox91-dev-tools/health.svg)](https://phpackages.com/packages/fox91-dev-tools)
```

###  Alternatives

[ramsey/devtools

A Composer plugin to aid PHP library and application development.

7134.7k26](/packages/ramsey-devtools)[codeigniter4/devkit

Development toolkit for CodeIgniter libraries and projects

68187.1k82](/packages/codeigniter4-devkit)[yoast/yoastcs

PHP\_CodeSniffer rules for Yoast projects

221.1M29](/packages/yoast-yoastcs)[ec-europa/toolkit

Toolkit packaged for Drupal projects based on Robo.

38244.6k16](/packages/ec-europa-toolkit)

PHPackages © 2026

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