PHPackages                             zalas/toolbox - 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. zalas/toolbox

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

zalas/toolbox
=============

Helps to discover and install tools

v1.106.0(2mo ago)2027428[3 issues](https://github.com/jakzal/toolbox/issues)[2 PRs](https://github.com/jakzal/toolbox/pulls)MITPHPPHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0CI passing

Since Aug 29Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/jakzal/toolbox)[ Packagist](https://packagist.org/packages/zalas/toolbox)[ GitHub Sponsors](https://github.com/jakzal)[ RSS](/packages/zalas-toolbox/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (10)Dependencies (6)Versions (226)Used By (0)

Toolbox
=======

[](#toolbox)

[![Build Status](https://github.com/jakzal/toolbox/workflows/Build/badge.svg)](https://github.com/jakzal/toolbox/actions)[![Build Status](https://camo.githubusercontent.com/9e58b577bb5a2606434a022982516f2c8d42c3716c85f008cecde20c6fbaf481/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6a616b7a616c2f746f6f6c626f782f6261646765732f6275696c642e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/jakzal/toolbox/build-status/master)

Helps to discover and install tools.

Use cases
---------

[](#use-cases)

Toolbox [started its life](https://github.com/jakzal/phpqa/blob/49482ae447d4b6341cf77aac9d51390fe1176e8c/tools.php)as a simple script in the [phpqa docker image](https://github.com/jakzal/phpqa). Its purpose was to install set of tools while building the docker image and it's still its main goal. It has been extracted as a separate project to make maintenance easier and enable new use cases.

Available tools
---------------

[](#available-tools)

NameDescriptionPHP 8.2PHP 8.3PHP 8.4PHP 8.5behat[Helps to test business expectations](http://behat.org/)✅✅✅✅box[Fast, zero config application bundler with PHARs](https://github.com/humbug/box)✅✅✅✅churn[Discovers good candidates for refactoring](https://github.com/bmitch/churn-php)✅✅✅✅codeception[Codeception is a BDD-styled PHP testing framework](https://codeception.com/)✅✅✅❌composer[Dependency Manager for PHP](https://getcomposer.org/)✅✅✅✅composer-bin-plugin[Composer plugin to install bin vendors in isolated locations](https://github.com/bamarni/composer-bin-plugin)✅✅✅✅composer-lock-diff[Composer plugin to check what has changed after a composer update](https://github.com/davidrjonas/composer-lock-diff)✅✅✅✅composer-normalize[Composer plugin to normalize composer.json files](https://github.com/ergebnis/composer-normalize)✅✅✅✅composer-require-checker[Verify that no unknown symbols are used in the sources of a package.](https://github.com/maglnet/ComposerRequireChecker)❌❌✅✅composer-require-checker-3[Verify that no unknown symbols are used in the sources of a package.](https://github.com/maglnet/ComposerRequireChecker)✅✅✅✅composer-unused[Show unused packages by scanning your code](https://github.com/icanhazstring/composer-unused)✅✅✅✅cyclonedx-php-composer[Composer plugin to create Software-Bill-of-Materials (SBOM) in CycloneDX format](https://github.com/CycloneDX/cyclonedx-php-composer)✅✅✅✅dephpend[Detect flaws in your architecture](https://dephpend.com/)✅✅✅✅deprecation-detector[Finds usages of deprecated code](https://github.com/sensiolabs-de/deprecation-detector)✅✅✅✅deptrac[Enforces dependency rules between software layers](https://github.com/deptrac/deptrac)✅✅✅✅diffFilter[Applies QA tools to run on a single pull request](https://github.com/exussum12/coverageChecker)✅✅✅✅ecs[Sets up and runs coding standard checks](https://github.com/Symplify/EasyCodingStandard)✅✅✅✅gherkin-lint-php[Gherkin linter for PHP](https://github.com/dantleech/gherkin-lint-php)✅✅✅✅infection[AST based PHP Mutation Testing Framework](https://infection.github.io/)✅✅✅✅jack[Helps to upgrade outdated Composer dependencies incrementally](https://github.com/rectorphp/jack)✅✅✅✅kahlan[Kahlan is a full-featured Unit &amp; BDD test framework a la RSpec/JSpec](https://kahlan.github.io/docs/)✅✅✅✅larastan[PHPStan extension for Laravel](https://github.com/nunomaduro/larastan)✅✅✅✅lines[CLI tool for quick metrics of PHP projects](https://github.com/tomasVotruba/lines)✅✅✅✅local-php-security-checker[Checks composer dependencies for known security vulnerabilities](https://github.com/fabpot/local-php-security-checker)✅✅✅✅parallel-lint[Checks PHP file syntax](https://github.com/php-parallel-lint/PHP-Parallel-Lint)✅✅✅✅paratest[Parallel testing for PHPUnit](https://github.com/paratestphp/paratest)✅✅✅✅pdepend[Static Analysis Tool](https://pdepend.org/)✅✅✅✅phan[Static Analysis Tool](https://github.com/phan/phan)✅✅✅✅phive[PHAR Installation and Verification Environment](https://phar.io/)✅✅✅✅php-cs-fixer[PHP Coding Standards Fixer](http://cs.symfony.com/)✅✅✅✅php-fuzzer[A fuzzer for PHP, which can be used to find bugs in libraries by feeding them 'random' inputs](https://github.com/nikic/PHP-Fuzzer)✅✅✅✅php-semver-checker[Suggests a next version according to semantic versioning](https://github.com/tomzx/php-semver-checker)✅✅✅✅phpa[Checks for weak assumptions](https://github.com/rskuipers/php-assumptions)✅✅✅✅phparkitect[Helps to put architectural constraints in a PHP code base](https://github.com/phparkitect/arkitect)✅✅✅✅phpat[Easy to use architecture testing tool](https://github.com/carlosas/phpat)✅✅✅✅phpbench[PHP Benchmarking framework](https://github.com/phpbench/phpbench)✅✅✅✅phpca[Finds usage of non-built-in extensions](https://github.com/wapmorgan/PhpCodeAnalyzer)✅✅✅✅phpcb[PHP Code Browser](https://github.com/mayflower/PHP_CodeBrowser)✅✅✅✅phpcbf[Automatically corrects coding standard violations](https://github.com/PHPCSStandards/PHP_CodeSniffer)✅✅✅✅phpcodesniffer-composer-install[Easy installation of PHP\_CodeSniffer coding standards (rulesets).](https://github.com/PHPCSStandards/composer-installer)✅✅✅✅phpcov[a command-line frontend for the PHP\_CodeCoverage library](https://github.com/sebastianbergmann/phpcov)❌✅✅✅phpcpd[Copy/Paste Detector](https://github.com/sebastianbergmann/phpcpd)✅✅✅✅phpcs[Detects coding standard violations](https://github.com/PHPCSStandards/PHP_CodeSniffer)✅✅✅✅phpcs-security-audit[Finds vulnerabilities and weaknesses related to security in PHP code](https://github.com/FloeDesignTechnologies/phpcs-security-audit)✅✅✅✅phpdd[Finds usage of deprecated features](http://wapmorgan.github.io/PhpDeprecationDetector)✅✅✅✅phpDocumentor[Documentation generator](https://www.phpdoc.org/)✅✅✅✅phpinsights[Analyses code quality, style, architecture and complexity](https://phpinsights.com/)✅✅✅✅phplint[Lints php files in parallel](https://github.com/overtrue/phplint)✅✅✅✅phploc[A tool for quickly measuring the size of a PHP project](https://github.com/sebastianbergmann/phploc)✅✅✅✅phpmd[A tool for finding problems in PHP code](https://phpmd.org/)✅✅✅✅phpmetrics[Static Analysis Tool](http://www.phpmetrics.org/)✅✅✅✅phpmnd[Helps to detect magic numbers](https://github.com/povils/phpmnd)✅✅✅✅phpspec[SpecBDD Framework](http://www.phpspec.net/)✅✅✅❌phpstan[Static Analysis Tool](https://github.com/phpstan/phpstan)✅✅✅✅phpstan-banned-code[PHPStan rules for detecting calls to specific functions you don't want in your project](https://github.com/ekino/phpstan-banned-code)✅✅✅✅phpstan-beberlei-assert[PHPStan extension for beberlei/assert](https://github.com/phpstan/phpstan-beberlei-assert)✅✅✅✅phpstan-deprecation-rules[PHPStan rules for detecting deprecated code](https://github.com/phpstan/phpstan-deprecation-rules)✅✅✅✅phpstan-doctrine[Doctrine extensions for PHPStan](https://github.com/phpstan/phpstan-doctrine)✅✅✅✅phpstan-ergebnis-rules[Additional rules for PHPstan](https://github.com/ergebnis/phpstan-rules)✅✅✅✅phpstan-larastan[Separate installation of phpstan for larastan](https://github.com/phpstan/phpstan)✅✅✅✅phpstan-phpunit[PHPUnit extensions and rules for PHPStan](https://github.com/phpstan/phpstan-phpunit)✅✅✅✅phpstan-strict-rules[Extra strict and opinionated rules for PHPStan](https://github.com/phpstan/phpstan-strict-rules)✅✅✅✅phpstan-symfony[Symfony extension for PHPStan](https://github.com/phpstan/phpstan-symfony)✅✅✅✅phpstan-webmozart-assert[PHPStan extension for webmozart/assert](https://github.com/phpstan/phpstan-webmozart-assert)✅✅✅✅phpunit[The PHP testing framework](https://phpunit.de/)❌❌✅✅phpunit-10[The PHP testing framework (10.x version)](https://phpunit.de/)✅✅✅✅phpunit-11[The PHP testing framework (11.x version)](https://phpunit.de/)✅✅✅✅phpunit-12[The PHP testing framework (12.x version)](https://phpunit.de/)❌✅✅✅phpunit-8[The PHP testing framework (8.x version)](https://phpunit.de/)✅✅✅✅phpunit-9[The PHP testing framework (9.x version)](https://phpunit.de/)✅✅✅✅pint[Opinionated PHP code style fixer for Laravel](https://github.com/laravel/pint)✅✅✅✅psalm[Finds errors in PHP applications](https://psalm.dev/)✅✅✅✅psalm-plugin-doctrine[Stubs to let Psalm understand Doctrine better](https://github.com/weirdan/doctrine-psalm-plugin)✅✅✅✅psalm-plugin-phpunit[Psalm plugin for PHPUnit](https://github.com/psalm/psalm-plugin-phpunit)✅✅✅✅psalm-plugin-symfony[Psalm Plugin for Symfony](https://github.com/psalm/psalm-plugin-symfony)✅✅✅✅psecio-parse[Scans code for potential security-related issues](https://github.com/psecio/parse)✅✅✅✅rector[Tool for instant code upgrades and refactoring](https://github.com/rectorphp/rector)✅✅✅✅roave-backward-compatibility-check[Tool to compare two revisions of a class API to check for BC breaks](https://github.com/Roave/BackwardCompatibilityCheck)✅✅✅✅simple-phpunit[Provides utilities to report legacy tests and usage of deprecated code](https://symfony.com/doc/current/components/phpunit_bridge.html)✅✅✅✅twig-cs-fixer[Automatically corrects twig files following the official coding standard rules](https://github.com/VincentLanglet/Twig-CS-Fixer)✅✅✅✅twig-lint[Standalone cli twig 1.X linter](https://github.com/asm89/twig-lint)✅✅✅✅twig-linter[Standalone cli twig 3.X linter](https://github.com/sserbin/twig-linter)✅✅✅✅twigcs[The missing checkstyle for twig!](https://github.com/friendsoftwig/twigcs)✅✅✅❌yaml-lint[Compact command line utility for checking YAML file syntax](https://github.com/j13k/yaml-lint)✅✅✅✅### Removed tools

[](#removed-tools)

NameSummaryanalyze[Visualizes metrics and source code](https://github.com/Qafoo/QualityAnalyzer)box-legacy[Legacy version of box](https://box-project.github.io/box2/)design-pattern[Detects design patterns](https://github.com/Halleck45/DesignPatternDetector)parallel-lint[Checks PHP file syntax](https://github.com/JakubOnderka/PHP-Parallel-Lint)pest[The elegant PHP Testing Framework](https://github.com/pestphp/pest)php-coupling-detector[Detects code coupling issues](https://akeneo.github.io/php-coupling-detector/)php-formatter[Custom coding standards fixer](https://github.com/mmoreram/php-formatter)phpcf[Finds usage of deprecated features](http://wapmorgan.github.io/PhpCodeFixer/)phpda[Generates dependency graphs](https://mamuz.github.io/PhpDependencyAnalysis/)phpdoc-to-typehint[Automatically adds type hints and return types based on PHPDocs](https://github.com/dunglas/phpdoc-to-typehint)phpstan-exception-rules[PHPStan rules for checked and unchecked exceptions](https://github.com/pepakriz/phpstan-exception-rules)phpstan-localheinz-rules[Additional rules for PHPstan](https://github.com/localheinz/phpstan-rules)phpunit-5[The PHP testing framework (5.x version)](https://phpunit.de/)phpunit-7[The PHP testing framework (7.x version)](https://phpunit.de/)security-checker[Checks composer dependencies for known security vulnerabilities](https://github.com/sensiolabs/security-checker)testability[Analyses and reports testability issues of a php codebase](https://github.com/edsonmedina/php_testability)Installation
------------

[](#installation)

Get the `toolbox.phar` from the [latest release](https://github.com/jakzal/toolbox/releases/latest). The command below should do the job:

```
curl -Ls https://github.com/jakzal/toolbox/releases/latest/download/toolbox.phar -o toolbox && chmod +x toolbox
```

Usage
-----

[](#usage)

### List available tools

[](#list-available-tools)

```
./toolbox list-tools

```

#### Filter tools by tags

[](#filter-tools-by-tags)

To exclude some tools from the listing multiple `--exclude-tag` options can be added. The `--tag` option can be used to filter tools by tags.

```
./toolbox list-tools --exclude-tag exclude-php:8.2 --exclude-tag foo --tag bar

```

### Install tools

[](#install-tools)

```
./toolbox install

```

#### Install tools in a custom directory

[](#install-tools-in-a-custom-directory)

By default tools are installed in the `/usr/local/bin` directory. To perform an installation in another location, pass the `--target-dir` option to the `install` command. Also, to change the location composer packages are installed in, export the `COMPOSER_HOME` environment variable.

```
mkdir /tools
export COMPOSER_HOME=/tools/.composer
export PATH="/tools:$COMPOSER_HOME/vendor/bin:$PATH"
./toolbox install --target-dir /tools

```

The target dir can also be configured with the `TOOLBOX_TARGET_DIR` environment variable.

#### Dry run

[](#dry-run)

To only see what commands would be executed, use the dry run mode:

```
./toolbox install --dry-run

```

#### Filter tools by tags

[](#filter-tools-by-tags-1)

To exclude some tools from the installation multiple `--exclude-tag` options can be added. The `--tag` option can be used to filter tools by tags.

```
./toolbox install --exclude-tag exclude-php:8.2 --exclude-tag foo --tag bar

```

### Test if installed tools are usable

[](#test-if-installed-tools-are-usable)

```
./toolbox test

```

#### Dry run

[](#dry-run-1)

To only see what commands would be executed, use the dry run mode:

```
./toolbox test --dry-run

```

#### Filter tools by tags

[](#filter-tools-by-tags-2)

To exclude some tools from the generated test command multiple `--exclude-tag` options can be added. The `--tag` option can be used to filter tools by tags.

```
./toolbox test --exclude-tag exclude-php:8.2 --exclude-tag foo --tag bar

```

### Tools definitions

[](#tools-definitions)

By default the following files are used to load tool definitions:

- `resources/pre-installation.json`
- `resources/architecture.json`
- `resources/checkstyle.json`
- `resources/compatibility.json`
- `resources/composer.json`
- `resources/deprecation.json`
- `resources/documentation.json`
- `resources/linting.json`
- `resources/metrics.json`
- `resources/phpstan.json`
- `resources/psalm.json`
- `resources/refactoring.json`
- `resources/security.json`
- `resources/test.json`
- `resources/tools.json`

Definitions can be loaded from customised files by passing the `--tools` option(s):

```
./toolbox list-tools --tools path/to/file1.json --tools path/to/file2.json

```

Tool definition location(s) can be also specified with the `TOOLBOX_JSON` environment variable:

```
TOOLBOX_JSON='path/to/file1.json,path/to/file2.json' ./toolbox list-tools

```

### Tool tags

[](#tool-tags)

Tools can be tagged in order to enable grouping and filtering them.

The tags below have a special meaning:

- `pre-installation` - these tools will be installed before any other tools.
- `exclude-php:8.2`, `exclude-php:8.3` etc - used to exclude installation on the specified php version.

Contributing
------------

[](#contributing)

Please read the [Contributing guide](CONTRIBUTING.md) to learn about contributing to this project. Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance83

Actively maintained with recent releases

Popularity28

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity99

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 92.8% 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 ~12 days

Total

224

Last Release

87d ago

Major Versions

v0.5.0 → v1.0.02019-01-02

PHP version history (11 changes)v0.0.1PHP ^7.1

v1.13.0PHP ^7.2

v1.31.0PHP ^7.3 || ~8.0.0

v1.51.0PHP ^7.4.7 || ~8.0.0

v1.54.0PHP ^7.4.7 || ~8.0.0 || ~8.1.0

v1.68.0PHP ^7.4.7 || ~8.0.0 || ~8.1.0 || ~8.2.0

v1.69.0PHP ~8.0.0 || ~8.1.0 || ~8.2.0

v1.80.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0

v1.85.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0

v1.92.0PHP ~8.2.0 || ~8.3.0 || ~8.4.0

v1.104.0PHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/012270929478a287f88353135a39d275db09c1856d344d0245e04df709879262?d=identicon)[jakzal](/maintainers/jakzal)

---

Top Contributors

[![jakzal](https://avatars.githubusercontent.com/u/190447?v=4)](https://github.com/jakzal "jakzal (1088 commits)")[![dkarlovi](https://avatars.githubusercontent.com/u/209225?v=4)](https://github.com/dkarlovi "dkarlovi (19 commits)")[![ro0NL](https://avatars.githubusercontent.com/u/1047696?v=4)](https://github.com/ro0NL "ro0NL (11 commits)")[![Pen-y-Fan](https://avatars.githubusercontent.com/u/40126936?v=4)](https://github.com/Pen-y-Fan "Pen-y-Fan (9 commits)")[![newmedia](https://avatars.githubusercontent.com/u/731226?v=4)](https://github.com/newmedia "newmedia (7 commits)")[![wseng](https://avatars.githubusercontent.com/u/6572161?v=4)](https://github.com/wseng "wseng (5 commits)")[![mihai-stancu](https://avatars.githubusercontent.com/u/1294142?v=4)](https://github.com/mihai-stancu "mihai-stancu (4 commits)")[![benjy8001](https://avatars.githubusercontent.com/u/20282245?v=4)](https://github.com/benjy8001 "benjy8001 (4 commits)")[![hussainweb](https://avatars.githubusercontent.com/u/1040271?v=4)](https://github.com/hussainweb "hussainweb (3 commits)")[![Spomky](https://avatars.githubusercontent.com/u/1091072?v=4)](https://github.com/Spomky "Spomky (3 commits)")[![carlosas](https://avatars.githubusercontent.com/u/29227794?v=4)](https://github.com/carlosas "carlosas (2 commits)")[![Jojolam44](https://avatars.githubusercontent.com/u/4331282?v=4)](https://github.com/Jojolam44 "Jojolam44 (2 commits)")[![hason](https://avatars.githubusercontent.com/u/288535?v=4)](https://github.com/hason "hason (2 commits)")[![jrfnl](https://avatars.githubusercontent.com/u/663378?v=4)](https://github.com/jrfnl "jrfnl (1 commits)")[![babaorum](https://avatars.githubusercontent.com/u/6162081?v=4)](https://github.com/babaorum "babaorum (1 commits)")[![betd-bmabille](https://avatars.githubusercontent.com/u/51611734?v=4)](https://github.com/betd-bmabille "betd-bmabille (1 commits)")[![danielsuguimoto](https://avatars.githubusercontent.com/u/25229545?v=4)](https://github.com/danielsuguimoto "danielsuguimoto (1 commits)")[![dgoosens](https://avatars.githubusercontent.com/u/1250047?v=4)](https://github.com/dgoosens "dgoosens (1 commits)")[![jkowalleck](https://avatars.githubusercontent.com/u/2765863?v=4)](https://github.com/jkowalleck "jkowalleck (1 commits)")[![andrew-demb](https://avatars.githubusercontent.com/u/12499813?v=4)](https://github.com/andrew-demb "andrew-demb (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zalas-toolbox/health.svg)

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

###  Alternatives

[internal/dload

Downloads binaries.

98142.7k10](/packages/internal-dload)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)[symfony/object-mapper

Provides a way to map an object to another object

34885.7k18](/packages/symfony-object-mapper)[phel-lang/phel-lang

Phel is a functional programming language that compiles to PHP

4743.5k10](/packages/phel-lang-phel-lang)[symfony/ai-bundle

Integration bundle for Symfony AI components

30282.3k6](/packages/symfony-ai-bundle)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)

PHPackages © 2026

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