mwx / tools
CLI application plumbing, configuration, process orchestration and external-tool wrappers, the PHPUnit wrapper among them
Requires
- php: ^8.2
- composer-runtime-api: ^2.1
- clue/arguments: ^2.1
- czproject/git-php: ^4.0
- mwx/lib: ^0.1
- symfony/console: ^7.3
- symfony/process: ^7.3
- symfony/stopwatch: ^7.3
- symfony/yaml: ^7.3
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-25 09:27:39 UTC
README
External-tool orchestration on top of mwx/lib.
Owns the mwx\Tools\ namespace prefix,
except Tools\Db\ / Tools\Mysql\ (→ mwx/tools-mysql) and Tools\Wp\ (→
mwx/tools-wp).
Contents
| Namespace | What it holds |
|---|---|
mwx\Tools\ | Process machinery (ProcessPipeline, sequences, descriptors, UnixPipes), tool wrappers (Executable, Script, ExternalTool, Git, Rsync, Php, Composer), binary interfaces/traits, application-coupled options (OptionsWithApplication, OptionsWithParent), LocalizedHash |
mwx\Tools\CLI\ | Application (symfony console extension), Command, Shell, IO and application-consumer contracts |
mwx\Tools\Config\ | Config family: file/localized/pathable configs, AppConfig |
mwx\Tools\Exceptions\ | ProcessFailedException (symfony-process-coupled) |
mwx\Tools\PhpUnit\ | The PHPUnit wrapper: EntryPoint and the phpunit script generated from it, Runner, and the output filter chain — see src/PhpUnit/README.md |
Tools define their own command-line option constants (e.g. Composer::OPTION_COMPOSER,
Rsync::OPTION_RSYNC_EXCLUDE, Mysql::OPTION_MYSQL in the mysql package);
applications register them.
The src/PhpUnit/ directory holds the PHPUnit wrapper,
imported from the shared guidelines and since refactored into this namespace.
git log -- packages/tools/src/PhpUnit reads back to 2026-04-23 and shows the
PHP line only: the bash implementation that sibling projects wrote,
and that this lineage never adopted,
hangs off the [TASK] Record the bash wrapper lineage without adopting it merge
as its second parent.
Add --all or ask that merge for its parents to see it.
EntryPoint.php carries the entry script's history across its rename;
use git log --follow.
The runnable phpunit beside it is generated from EntryPoint.php and is
not committed — see .gitignore here,
and src/PhpUnit/README.md section 6 for the command.
Generating it also deploys phpunit.bat and phpunit.md.
There is nothing to edit in it: it is a build product.
Dependencies
mwx/lib, symfony console/process/stopwatch/yaml,
clue/arguments (command-line splitting in Script),
czproject/git-php (Git, LocalizedHash defaults),
and composer-runtime-api (Application::getComposerRootPath()).
Install
composer require mwx/tools
MIT license.