diff --git a/README.md b/README.md index 1d924e9b..19be46b3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -

Yii Framework Console

+

Yii Console


@@ -15,7 +15,17 @@ [![static analysis](https://github.com/yiisoft/yii-console/workflows/static%20analysis/badge.svg)](https://github.com/yiisoft/yii-console/actions?query=workflow%3A%22static+analysis%22) [![type-coverage](https://shepherd.dev/github/yiisoft/yii-console/coverage.svg)](https://shepherd.dev/github/yiisoft/yii-console) -This Yii Framework package provides a console that could be added to an application. +Yii Console package provides a console that could be added to an application. This console is based on +[Symfony Console](https://github.com/symfony/console). The following extra features are added: + +- lazy command loader; +- `SymfonyEventDispatcher` class that allows to use any [PSR-14](http://www.php-fig.org/psr/psr-14/) compatible event + dispatcher with Symfony console; +- `ErrorListener` for logging console errors to any [PSR-3](https://www.php-fig.org/psr/psr-3/) compatible logger; +- console command `serve` that runs PHP built-in web server; +- raises events `ApplicationStartup` and `ApplicationShutdown` in console application; +- class `ExitCode` that contains constants for defining console command exit codes; +- `ConsoleBufferedOutput` that wraps `ConsoleOutput` and buffers console output. ## Requirements @@ -26,7 +36,7 @@ This Yii Framework package provides a console that could be added to an applicat The package could be installed with composer: ```shell -composer require yiisoft/yii-console --prefer-dist +composer require yiisoft/yii-console ``` ## General usage @@ -141,36 +151,13 @@ To configure default settings, set the options in `\Yiisoft\Yii\Console\CommandL Alternatively, you can pass the settings through the console options. To see the available options, run `./yii serve --help` -## Testing - -### Unit testing - -The package is tested with [PHPUnit](https://phpunit.de/). To run tests: - -```shell -./vendor/bin/phpunit -``` - -### Mutation testing - -The package tests are checked with [Infection](https://infection.github.io/) mutation framework with -[Infection Static Analysis Plugin](https://github.com/Roave/infection-static-analysis-plugin). To run it: +## Documentation -```shell -./vendor/bin/roave-infection-static-analysis-plugin -``` - -### Static analysis - -The code is statically analyzed with [Psalm](https://psalm.dev/). To run static analysis: - -```shell -./vendor/bin/psalm -``` +- [Internals](docs/internals.md) ## License -The Yii Framework Console is free software. It's released under the terms of the BSD License. +The Yii Console is free software. It's released under the terms of the BSD License. Please see [`LICENSE`](./LICENSE.md) for more information. Maintained by [Yii Software](https://www.yiiframework.com/). diff --git a/composer.json b/composer.json index 1142038a..031d2aad 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "yiisoft/yii-console", "type": "library", - "description": "Yii Framework Console", + "description": "Symfony console wrapper with additional features", "keywords": [ "yii", "console" diff --git a/docs/internals.md b/docs/internals.md new file mode 100644 index 00000000..6ef50daf --- /dev/null +++ b/docs/internals.md @@ -0,0 +1,40 @@ +# Internals + +## Unit testing + +The package is tested with [PHPUnit](https://phpunit.de/). To run tests: + +```shell +./vendor/bin/phpunit +``` + +## Mutation testing + +The package tests are checked with [Infection](https://infection.github.io/) mutation framework with +[Infection Static Analysis Plugin](https://github.com/Roave/infection-static-analysis-plugin). To run it: + +```shell +./vendor/bin/roave-infection-static-analysis-plugin +``` + +## Static analysis + +The code is statically analyzed with [Psalm](https://psalm.dev/). To run static analysis: + +```shell +./vendor/bin/psalm +``` + +## Code style + +Use [Rector](https://github.com/rectorphp/rector) to make codebase follow some specific rules or +use either newest or any specific version of PHP: + +```shell +./vendor/bin/rector +``` + +## Dependencies + +Use [ComposerRequireChecker](https://github.com/maglnet/ComposerRequireChecker) to detect transitive +[Composer](https://getcomposer.org/) dependencies.