From d510b1428b510b1927c2fcb0d307f6dcce7ccfd6 Mon Sep 17 00:00:00 2001 From: Laurent Laville Date: Sun, 17 Dec 2023 15:47:36 +0000 Subject: [PATCH] update Architecture documentation related to version 9.1 --- docs/architecture/README.md | 8 + docs/architecture/cache.md | 4 +- docs/architecture/configuration.md | 4 +- docs/architecture/console.md | 12 + docs/architecture/event.md | 4 +- docs/architecture/extension.md | 4 +- docs/architecture/finder.md | 4 +- docs/architecture/helper.md | 17 + docs/architecture/output.md | 6 +- docs/architecture/process.md | 6 +- docs/assets/cache-uml-diagram.svg | 42 +- docs/assets/config-uml-diagram.svg | 230 +++++------ docs/assets/console-uml-diagram.svg | 200 ++++++++++ docs/assets/event-uml-diagram.svg | 538 +++++++++++++------------- docs/assets/extension-uml-diagram.svg | 311 ++++++++------- docs/assets/finder-uml-diagram.svg | 52 ++- docs/assets/helper-uml-diagram.svg | 102 +++++ docs/assets/linter-uml-diagram.svg | 29 ++ docs/assets/output-uml-diagram.svg | 499 +++++++++++++----------- docs/assets/process-uml-diagram.svg | 275 ++++++------- 20 files changed, 1421 insertions(+), 926 deletions(-) create mode 100644 docs/architecture/console.md create mode 100644 docs/architecture/helper.md create mode 100644 docs/assets/console-uml-diagram.svg create mode 100644 docs/assets/helper-uml-diagram.svg create mode 100644 docs/assets/linter-uml-diagram.svg diff --git a/docs/architecture/README.md b/docs/architecture/README.md index 6e22937a..c6224be8 100644 --- a/docs/architecture/README.md +++ b/docs/architecture/README.md @@ -10,6 +10,10 @@ To learn how PHPLint is able to improve speed analysis on multiple runs. To learn how PHPLint options can customize your checks. +## [Console](console.md#console) + +To learn more about PHPLint CLI application. + ## [Event-Driven](event.md#event-driven-architecture-on-wikipediaeda) To learn more about how to extend PHPLint features. @@ -22,6 +26,10 @@ To learn more about how to extend PHPLint features. To learn how PHPLint find files to check. +## [Helper](helper.md#helper) + +To learn how PHPLint is able to debug asynchronous processes run in background. + ## [Output](output.md#output-formats) To learn how PHPLint can customize results output. diff --git a/docs/architecture/cache.md b/docs/architecture/cache.md index ac93c20d..40a158d1 100644 --- a/docs/architecture/cache.md +++ b/docs/architecture/cache.md @@ -17,8 +17,8 @@ You can change this directory with the `cache` option. See [Configuration](../co ![UML Diagram](../assets/cache-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/cache]: https://github.com/symfony/cache [filesystem-adapter]: https://symfony.com/doc/current/components/cache/adapters/filesystem_adapter.html diff --git a/docs/architecture/configuration.md b/docs/architecture/configuration.md index 985b8f27..487fbb87 100644 --- a/docs/architecture/configuration.md +++ b/docs/architecture/configuration.md @@ -20,8 +20,8 @@ When YAML configuration file exists and is loadable, it will be automatically us ![UML Diagram](../assets/config-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/options-resolver]: https://github.com/symfony/options-resolver [factory-method-pattern]: https://en.wikipedia.org/wiki/Factory_method_pattern diff --git a/docs/architecture/console.md b/docs/architecture/console.md new file mode 100644 index 00000000..6cb7859d --- /dev/null +++ b/docs/architecture/console.md @@ -0,0 +1,12 @@ +# Console + +PHPLint is a CLI Application with a single command built over the [Symfony Console Component][symfony/console]. + +## UML Diagram + +![UML Diagram](../assets/console-uml-diagram.svg) + +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. + +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml +[symfony/console]: https://symfony.com/doc/current/components/console.html diff --git a/docs/architecture/event.md b/docs/architecture/event.md index 4f1f96b1..348e58b3 100644 --- a/docs/architecture/event.md +++ b/docs/architecture/event.md @@ -9,7 +9,7 @@ That's allow to easily add new `Extension` (like progress `bar` and `meter` widg ![UML Diagram](../assets/event-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. ## The Dispatcher @@ -40,6 +40,6 @@ $dispatcher = new EventDispatcher($extensions); ``` [eda]: https://en.wikipedia.org/wiki/Event-driven_architecture -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/event-dispatcher]: https://github.com/symfony/event-dispatcher [EventSubscriberInterface]: https://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/EventDispatcher/EventSubscriberInterface.php diff --git a/docs/architecture/extension.md b/docs/architecture/extension.md index 123ede03..7d62ccfa 100644 --- a/docs/architecture/extension.md +++ b/docs/architecture/extension.md @@ -7,7 +7,7 @@ Each extension is based on [Event Driven Architecture](./event.md) ![UML Diagram](../assets/extension-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. ## OutputFormat @@ -97,6 +97,6 @@ $extensions = [ ``` -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony-progressbar]: https://symfony.com/doc/current/components/console/helpers/progressbar.html [symfony-progressindicator]: https://symfony.com/doc/current/components/console/helpers/progressindicator.html \ No newline at end of file diff --git a/docs/architecture/finder.md b/docs/architecture/finder.md index 8b46f51b..225cc065 100644 --- a/docs/architecture/finder.md +++ b/docs/architecture/finder.md @@ -12,7 +12,7 @@ you can replace the `Overtrue\PHPLint\Finder` object by any Symfony Finder insta ![UML Diagram](../assets/finder-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/finder]: https://github.com/symfony/finder diff --git a/docs/architecture/helper.md b/docs/architecture/helper.md new file mode 100644 index 00000000..0eeeee08 --- /dev/null +++ b/docs/architecture/helper.md @@ -0,0 +1,17 @@ +# Helper + +PHPLint uses two adapted Symfony Console helpers +([ProcessHelper][symfony/process-helper] and [DebugFormatterHelper][symfony/debug-formatter-helper]) +for debugging asynchronous processes. + +You've just to use verbose level 2 or 3 to see live results. + +## UML Diagram + +![UML Diagram](../assets/helper-uml-diagram.svg) + +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. + +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml +[symfony/process-helper]: https://symfony.com/doc/current/components/console/helpers/processhelper.html +[symfony/debug-formatter-helper]: https://symfony.com/doc/current/components/console/helpers/debug_formatter.html diff --git a/docs/architecture/output.md b/docs/architecture/output.md index 2ed34c80..0449013b 100644 --- a/docs/architecture/output.md +++ b/docs/architecture/output.md @@ -12,9 +12,9 @@ via the `Overtrue\PHPLint\Output\ChainOutput` object and its handlers (`Overtrue ## UML Diagram -![UML Diagram](../assets/extension-uml-diagram.svg) +![UML Diagram](../assets/output-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. ## `ConsoleOutput` handler @@ -88,7 +88,7 @@ This handler is responsible to print PHPLint results on Junit XML format. For ex ``` -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/console]: https://github.com/symfony/console [symfony-console-events]: https://symfony.com/doc/current/components/console/events.html [chain-of-responsibility-pattern]: https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern diff --git a/docs/architecture/process.md b/docs/architecture/process.md index f6e706c7..693116fe 100644 --- a/docs/architecture/process.md +++ b/docs/architecture/process.md @@ -7,9 +7,9 @@ and build one `Overtrue\PHPLint\Process\LintProcess` instance for each command/f ## UML Diagram -![UML Diagram](../assets/extension-uml-diagram.svg) +![UML Diagram](../assets/process-uml-diagram.svg) -Generated by [bartlett/umlwriter][bartlett/umlwriter] package. +Generated by [bartlett/graph-uml][bartlett/graph-uml] package via the `resources/graph-uml/build.php` script. ## Example(s) @@ -51,5 +51,5 @@ $results = $linter->lintFiles($finder->getFiles()); // - list of file that were analyzed (`getMisses()`) because contents changed since previous run ``` -[bartlett/umlwriter]: https://github.com/llaville/umlwriter +[bartlett/graph-uml]: https://packagist.org/packages/bartlett/graph-uml [symfony/process]: https://github.com/symfony/process diff --git a/docs/assets/cache-uml-diagram.svg b/docs/assets/cache-uml-diagram.svg index 15715eca..5943fc92 100644 --- a/docs/assets/cache-uml-diagram.svg +++ b/docs/assets/cache-uml-diagram.svg @@ -1,36 +1,36 @@ - - - + + %3 cluster_0 - -Overtrue\PHPLint + +Overtrue\PHPLint Overtrue\\PHPLint\\Cache - - - -Cache - - -+ __construct(cachePoolAdapter = «unknown») -+ createCachePool(adapter : Symfony\Component\Cache\Adapter\AdapterInterface) : Psr\Cache\CacheItemPoolInterface -+ hasItem(filename : string) : bool -+ getItem(filename : string) : Psr\Cache\CacheItemInterface -+ saveItem(item : Psr\Cache\CacheItemInterface) : bool -+ clear(prefix : string = '') : bool -+ isHit(filename : string) : bool -+ getCalls() : array -+ __debugInfo() : ?array + + + +Cache + + ++ __construct(cachePoolAdapter = «unknown») ++ createCachePool(adapter : Symfony\Component\Cache\Adapter\AdapterInterface) : Psr\Cache\CacheItemPoolInterface ++ hasItem(filename : string) : bool ++ getItem(filename : string) : Psr\Cache\CacheItemInterface ++ saveItem(item : Psr\Cache\CacheItemInterface) : bool ++ clear(prefix : string = '') : bool ++ isHit(filename : string) : bool ++ getCalls() : array ++ __debugInfo() : ?array diff --git a/docs/assets/config-uml-diagram.svg b/docs/assets/config-uml-diagram.svg index f14491e0..26c54736 100644 --- a/docs/assets/config-uml-diagram.svg +++ b/docs/assets/config-uml-diagram.svg @@ -1,153 +1,155 @@ - - + %3 cluster_0 - -Overtrue\PHPLint\Configuration + +Overtrue\PHPLint\Configuration - + -Overtrue\\PHPLint\\Configuration\\Options - - - -«interface» -Options - - -+ «abstract» resolve() : array +Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver + + + +«abstract» +AbstractOptionsResolver + + ++ __construct(input : Symfony\Component\Console\Input\InputInterface, configuration : array = []) ++ «abstract» factory() : Overtrue\PHPLint\Configuration\Options ++ getOptions() : array ++ getOption(name : string) : ?mixed Overtrue\\PHPLint\\Configuration\\Resolver - - - -«interface» -Resolver - - -+ «abstract» factory() : Overtrue\PHPLint\Configuration\Options -+ «abstract» getOptions() : array -+ «abstract» getOption(name : string) : ?mixed + + + +«interface» +Resolver + + ++ «abstract» factory() : Overtrue\PHPLint\Configuration\Options ++ «abstract» getOptions() : array ++ «abstract» getOption(name : string) : ?mixed - + + +Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver->Overtrue\\PHPLint\\Configuration\\Resolver + + + + -Overtrue\\PHPLint\\Configuration\\FileOptionsResolver - - - -FileOptionsResolver - - -+ __construct(input : Symfony\Component\Console\Input\InputInterface) -+ factory() : Overtrue\PHPLint\Configuration\Options +Overtrue\\PHPLint\\Configuration\\ConsoleOptionsResolver + + + +ConsoleOptionsResolver + + ++ factory() : Overtrue\PHPLint\Configuration\Options - + + +Overtrue\\PHPLint\\Configuration\\ConsoleOptionsResolver->Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver + + + + -Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver - - - -«abstract» -AbstractOptionsResolver - - -+ __construct(input : Symfony\Component\Console\Input\InputInterface, configuration : array = []) -+ «abstract» factory() : Overtrue\PHPLint\Configuration\Options -+ getOptions() : array -+ getOption(name : string) : ?mixed +Overtrue\\PHPLint\\Configuration\\FileOptionsResolver + + + +FileOptionsResolver + + ++ __construct(input : Symfony\Component\Console\Input\InputInterface) ++ factory() : Overtrue\PHPLint\Configuration\Options - + Overtrue\\PHPLint\\Configuration\\FileOptionsResolver->Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver - - - - - -Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver->Overtrue\\PHPLint\\Configuration\\Resolver - - + + Overtrue\\PHPLint\\Configuration\\OptionDefinition - - - -«interface» -OptionDefinition - -+ «static» OPTION_JOBS : string = "jobs" {readOnly} -+ «static» OPTION_PATH : string = "path" {readOnly} -+ «static» OPTION_EXCLUDE : string = "exclude" {readOnly} -+ «static» OPTION_EXTENSIONS : string = "extensions" {readOnly} -+ «static» OPTION_WARNING : string = "warning" {readOnly} -+ «static» OPTION_CACHE : string = "cache" {readOnly} -+ «static» OPTION_NO_CACHE : string = "no\-cache" {readOnly} -+ «static» OPTION_CONFIG_FILE : string = "configuration" {readOnly} -+ «static» OPTION_NO_CONFIG_FILE : string = "no\-configuration" {readOnly} -+ «static» OPTION_MEMORY_LIMIT : string = "memory\-limit" {readOnly} -+ «static» OPTION_PROGRESS : string = "progress" {readOnly} -+ «static» OPTION_NO_PROGRESS : string = "no\-progress" {readOnly} -+ «static» OPTION_JSON_FILE : string = "log\-json" {readOnly} -+ «static» OPTION_JUNIT_FILE : string = "log\-junit" {readOnly} -+ «static» OPTION_IGNORE_EXIT_CODE : string = "ignore\-exit\-code" {readOnly} -+ «static» DEFAULT_JOBS : int = 5 {readOnly} -+ «static» DEFAULT_PATH : string = "\." {readOnly} -+ «static» DEFAULT_EXCLUDES : array = [] {readOnly} -+ «static» DEFAULT_EXTENSIONS : array = […] {readOnly} -+ «static» DEFAULT_CACHE_DIR : string = "\.phplint\.cache" {readOnly} -+ «static» DEFAULT_CONFIG_FILE : string = "\.phplint\.yml" {readOnly} -+ «static» DEFAULT_PROGRESS_WIDGET : string = "printer" {readOnly} -+ «static» DEFAULT_STANDARD_OUTPUT_LABEL : string = "standard\ output" {readOnly} -+ «static» DEFAULT_STANDARD_OUTPUT : string = "php\:\/\/stdout" {readOnly} - - + + + +«interface» +OptionDefinition + ++ «static» JOBS : string = "jobs" {readOnly} ++ «static» PATH : string = "path" {readOnly} ++ «static» EXCLUDE : string = "exclude" {readOnly} ++ «static» EXTENSIONS : string = "extensions" {readOnly} ++ «static» WARNING : string = "warning" {readOnly} ++ «static» CACHE : string = "cache" {readOnly} ++ «static» NO_CACHE : string = "no\-cache" {readOnly} ++ «static» CONFIGURATION : string = "configuration" {readOnly} ++ «static» NO_CONFIGURATION : string = "no\-configuration" {readOnly} ++ «static» OPTION_MEMORY_LIMIT : string = "memory\-limit" {readOnly} ++ «static» PROGRESS : string = "progress" {readOnly} ++ «static» NO_PROGRESS : string = "no\-progress" {readOnly} ++ «static» LOG_JSON : string = "log\-json" {readOnly} ++ «static» LOG_JUNIT : string = "log\-junit" {readOnly} ++ «static» IGNORE_EXIT_CODE : string = "ignore\-exit\-code" {readOnly} ++ «static» DEFAULT_JOBS : int = 5 {readOnly} ++ «static» DEFAULT_PATH : string = "\." {readOnly} ++ «static» DEFAULT_EXCLUDES : array = [] {readOnly} ++ «static» DEFAULT_EXTENSIONS : array = […] {readOnly} ++ «static» DEFAULT_CACHE_DIR : string = "\.phplint\.cache" {readOnly} ++ «static» DEFAULT_CONFIG_FILE : string = "\.phplint\.yml" {readOnly} ++ «static» DEFAULT_PROGRESS_WIDGET : string = "printer" {readOnly} ++ «static» DEFAULT_STANDARD_OUTPUT_LABEL : string = "standard\ output" {readOnly} ++ «static» DEFAULT_STANDARD_OUTPUT : string = "php\:\/\/stdout" {readOnly} + + - + -Overtrue\\PHPLint\\Configuration\\ConsoleOptionsResolver - - - -ConsoleOptionsResolver - - -+ factory() : Overtrue\PHPLint\Configuration\Options - - - -Overtrue\\PHPLint\\Configuration\\ConsoleOptionsResolver->Overtrue\\PHPLint\\Configuration\\AbstractOptionsResolver - - +Overtrue\\PHPLint\\Configuration\\Options + + + +«interface» +Options + + ++ «abstract» resolve() : array Overtrue\\PHPLint\\Configuration\\OptionsFactory - - - -OptionsFactory - - -+ __construct(defaults : array) -+ resolve() : array + + + +OptionsFactory + + ++ __construct(defaults : array) ++ resolve() : array ++ «static» logNormalizer(options : Symfony\Component\OptionsResolver\Options, value) ++ «static» toBool(value : mixed) Overtrue\\PHPLint\\Configuration\\OptionsFactory->Overtrue\\PHPLint\\Configuration\\Options - - + + diff --git a/docs/assets/console-uml-diagram.svg b/docs/assets/console-uml-diagram.svg new file mode 100644 index 00000000..adfb8f5d --- /dev/null +++ b/docs/assets/console-uml-diagram.svg @@ -0,0 +1,200 @@ + + + + + + +%3 + +cluster_0 + +Overtrue\PHPLint\Command + + +cluster_1 + +Symfony\Component\Console\Command + + +cluster_2 + +Overtrue\PHPLint\Console + + +cluster_3 + +Symfony\Component\Console + + +cluster_4 + +Symfony\Contracts\Service + + + +Overtrue\\PHPLint\\Command\\ConfigureCommandTrait + + + +ConfigureCommandTrait + + + + + +Overtrue\\PHPLint\\Command\\LintCommand + + + +LintCommand + + ++ __construct(dispatcher : Symfony\Component\EventDispatcher\EventDispatcherInterface, name : string = 'lint') ++ getResults() : Overtrue\PHPLint\Output\LinterOutput + + + +Symfony\\Component\\Console\\Command\\Command + + + +Command + ++ «static» SUCCESS : int = 0 {readOnly} ++ «static» FAILURE : int = 1 {readOnly} ++ «static» INVALID : int = 2 {readOnly} + + ++ «static» getDefaultName() : ?string ++ «static» getDefaultDescription() : ?string ++ __construct(name : string = «unknown») ++ ignoreValidationErrors() ++ setApplication(application : Symfony\Component\Console\Application = «unknown») ++ setHelperSet(helperSet : Symfony\Component\Console\Helper\HelperSet) ++ getHelperSet() : ?Symfony\Component\Console\Helper\HelperSet ++ getApplication() : ?Symfony\Component\Console\Application ++ isEnabled() ++ run(input : Symfony\Component\Console\Input\InputInterface, output : Symfony\Component\Console\Output\OutputInterface) : int ++ complete(input : Symfony\Component\Console\Completion\CompletionInput, suggestions : Symfony\Component\Console\Completion\CompletionSuggestions) : void ++ setCode(code : callable) : static ++ mergeApplicationDefinition(mergeArgs : bool = true) : void ++ setDefinition(definition) : static ++ getDefinition() : Symfony\Component\Console\Input\InputDefinition ++ getNativeDefinition() : Symfony\Component\Console\Input\InputDefinition ++ addArgument(name : string, mode : int = «unknown», description : string = '', default : mixed = «unknown») : static ++ addOption(name : string, shortcut = «unknown», mode : int = «unknown», description : string = '', default : mixed = «unknown») : static ++ setName(name : string) : static ++ setProcessTitle(title : string) : static ++ getName() : ?string ++ setHidden(hidden : bool = true) : static ++ isHidden() : bool ++ setDescription(description : string) : static ++ getDescription() : string ++ setHelp(help : string) : static ++ getHelp() : string ++ getProcessedHelp() : string ++ setAliases(aliases : iterable) : static ++ getAliases() : array ++ getSynopsis(short : bool = false) : string ++ addUsage(usage : string) : static ++ getUsages() : array ++ getHelper(name : string) : ?mixed + + + +Overtrue\\PHPLint\\Command\\LintCommand->Symfony\\Component\\Console\\Command\\Command + + + + + +Overtrue\\PHPLint\\Console\\Application + + + +Application + ++ «static» NAME : string = "phplint" {readOnly} ++ «static» VERSION : string = "9\.1\.0" {readOnly} + + ++ __construct() ++ run(input : Symfony\Component\Console\Input\InputInterface = «unknown», output : Symfony\Component\Console\Output\OutputInterface = «unknown») : int + + + +Symfony\\Component\\Console\\Application + + + +Application + + ++ __construct(name : string = 'UNKNOWN', version : string = 'UNKNOWN') ++ setDispatcher(dispatcher : Symfony\Contracts\EventDispatcher\EventDispatcherInterface) : void ++ setCommandLoader(commandLoader : Symfony\Component\Console\CommandLoader\CommandLoaderInterface) ++ getSignalRegistry() : Symfony\Component\Console\SignalRegistry\SignalRegistry ++ setSignalsToDispatchEvent(signalsToDispatchEvent : int = «unknown») ++ run(input : Symfony\Component\Console\Input\InputInterface = «unknown», output : Symfony\Component\Console\Output\OutputInterface = «unknown») : int ++ doRun(input : Symfony\Component\Console\Input\InputInterface, output : Symfony\Component\Console\Output\OutputInterface) ++ reset() ++ setHelperSet(helperSet : Symfony\Component\Console\Helper\HelperSet) ++ getHelperSet() : Symfony\Component\Console\Helper\HelperSet ++ setDefinition(definition : Symfony\Component\Console\Input\InputDefinition) ++ getDefinition() : Symfony\Component\Console\Input\InputDefinition ++ complete(input : Symfony\Component\Console\Completion\CompletionInput, suggestions : Symfony\Component\Console\Completion\CompletionSuggestions) : void ++ getHelp() : string ++ areExceptionsCaught() : bool ++ setCatchExceptions(boolean : bool) ++ setCatchErrors(catchErrors : bool = true) : void ++ isAutoExitEnabled() : bool ++ setAutoExit(boolean : bool) ++ getName() : string ++ setName(name : string) ++ getVersion() : string ++ setVersion(version : string) ++ getLongVersion() ++ register(name : string) : Symfony\Component\Console\Command\Command ++ addCommands(commands : array) ++ add(command : Symfony\Component\Console\Command\Command) ++ get(name : string) ++ has(name : string) : bool ++ getNamespaces() : array ++ findNamespace(namespace : string) : string ++ find(name : string) ++ all(namespace : string = «unknown») ++ «static» getAbbreviations(names : array) : array ++ renderThrowable(e : Throwable, output : Symfony\Component\Console\Output\OutputInterface) : void ++ extractNamespace(name : string, limit : int = «unknown») : string ++ setDefaultCommand(commandName : string, isSingleCommand : bool = false) : static ++ isSingleCommand() : bool + + + +Overtrue\\PHPLint\\Console\\Application->Symfony\\Component\\Console\\Application + + + + + +Symfony\\Contracts\\Service\\ResetInterface + + + +«interface» +ResetInterface + + ++ «abstract» reset() + + + +Symfony\\Component\\Console\\Application->Symfony\\Contracts\\Service\\ResetInterface + + + + + diff --git a/docs/assets/event-uml-diagram.svg b/docs/assets/event-uml-diagram.svg index be34c8f4..7484b70e 100644 --- a/docs/assets/event-uml-diagram.svg +++ b/docs/assets/event-uml-diagram.svg @@ -1,360 +1,360 @@ - - + %3 cluster_0 - -Overtrue\PHPLint\Event + +Overtrue\PHPLint\Event cluster_1 - -Symfony\Component\EventDispatcher + +Symfony\Component\EventDispatcher cluster_2 - -Symfony\Contracts\EventDispatcher + +Symfony\Contracts\EventDispatcher cluster_3 - -Psr\EventDispatcher + +Psr\EventDispatcher cluster_4 - -0 - - - -Overtrue\\PHPLint\\Event\\BeforeLintFileInterface - - - -«interface» -BeforeLintFileInterface - - -+ «abstract» beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void - - - -Overtrue\\PHPLint\\Event\\BeforeCheckingInterface - - - -«interface» -BeforeCheckingInterface - - -+ «abstract» beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void - - - -Overtrue\\PHPLint\\Event\\AfterLintFileEvent - - - -AfterLintFileEvent - - - - - -Symfony\\Component\\EventDispatcher\\GenericEvent - - - -GenericEvent - - -+ __construct(subject : mixed = «unknown», arguments : array = []) -+ getSubject() : ?mixed -+ getArgument(key : string) : ?mixed -+ setArgument(key : string, value : mixed) : static -+ getArguments() : array -+ setArguments(args : array = []) : static -+ hasArgument(key : string) : bool -+ offsetGet(key : mixed) : ?mixed -+ offsetSet(key : mixed, value : mixed) : void -+ offsetUnset(key : mixed) : void -+ offsetExists(key : mixed) : bool -+ getIterator() : ArrayIterator - - - -Overtrue\\PHPLint\\Event\\AfterLintFileEvent->Symfony\\Component\\EventDispatcher\\GenericEvent - - + +0 - + Overtrue\\PHPLint\\Event\\EventDispatcher - - - -EventDispatcher - - -+ __construct(extensions : iterable) -+ dispatch(event : object, eventName : string = «unknown») : object + + + +EventDispatcher + + ++ __construct(extensions : iterable) ++ dispatch(event : object, eventName : string = «unknown») : object - + Symfony\\Component\\EventDispatcher\\EventDispatcher - - - -EventDispatcher - - -+ __construct() -+ dispatch(event : object, eventName : string = «unknown») : object -+ getListeners(eventName : string = «unknown») : array -+ getListenerPriority(eventName : string, listener) : ?int -+ hasListeners(eventName : string = «unknown») : bool -+ addListener(eventName : string, listener, priority : int = 0) -+ removeListener(eventName : string, listener) -+ addSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) -+ removeSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) + + + +EventDispatcher + + ++ __construct() ++ dispatch(event : object, eventName : string = «unknown») : object ++ getListeners(eventName : string = «unknown») : array ++ getListenerPriority(eventName : string, listener) : ?int ++ hasListeners(eventName : string = «unknown») : bool ++ addListener(eventName : string, listener, priority : int = 0) ++ removeListener(eventName : string, listener) ++ addSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) ++ removeSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) - + Overtrue\\PHPLint\\Event\\EventDispatcher->Symfony\\Component\\EventDispatcher\\EventDispatcher - - + + - + Overtrue\\PHPLint\\Event\\AfterCheckingEvent - - - -AfterCheckingEvent - - + + + +AfterCheckingEvent + + + + + +Symfony\\Component\\EventDispatcher\\GenericEvent + + + +GenericEvent + + ++ __construct(subject : mixed = «unknown», arguments : array = []) ++ getSubject() : ?mixed ++ getArgument(key : string) : ?mixed ++ setArgument(key : string, value : mixed) : static ++ getArguments() : array ++ setArguments(args : array = []) : static ++ hasArgument(key : string) : bool ++ offsetGet(key : mixed) : ?mixed ++ offsetSet(key : mixed, value : mixed) : void ++ offsetUnset(key : mixed) : void ++ offsetExists(key : mixed) : bool ++ getIterator() : ArrayIterator - + Overtrue\\PHPLint\\Event\\AfterCheckingEvent->Symfony\\Component\\EventDispatcher\\GenericEvent - - + + + + + +Overtrue\\PHPLint\\Event\\AfterCheckingInterface + + + +«interface» +AfterCheckingInterface + + ++ «abstract» afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void + + + +Overtrue\\PHPLint\\Event\\AfterLintFileEvent + + + +AfterLintFileEvent + + + + + +Overtrue\\PHPLint\\Event\\AfterLintFileEvent->Symfony\\Component\\EventDispatcher\\GenericEvent + + + + + +Overtrue\\PHPLint\\Event\\AfterLintFileInterface + + + +«interface» +AfterLintFileInterface + + ++ «abstract» afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void Overtrue\\PHPLint\\Event\\BeforeCheckingEvent - - - -BeforeCheckingEvent - - + + + +BeforeCheckingEvent + + Overtrue\\PHPLint\\Event\\BeforeCheckingEvent->Symfony\\Component\\EventDispatcher\\GenericEvent - - + + - + +Overtrue\\PHPLint\\Event\\BeforeCheckingInterface + + + +«interface» +BeforeCheckingInterface + + ++ «abstract» beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void + + + Overtrue\\PHPLint\\Event\\BeforeLintFileEvent - - - -BeforeLintFileEvent - - + + + +BeforeLintFileEvent + + Overtrue\\PHPLint\\Event\\BeforeLintFileEvent->Symfony\\Component\\EventDispatcher\\GenericEvent - - + + - - -Overtrue\\PHPLint\\Event\\AfterLintFileInterface - - - -«interface» -AfterLintFileInterface - - -+ «abstract» afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void - - + -Overtrue\\PHPLint\\Event\\AfterCheckingInterface - - - -«interface» -AfterCheckingInterface - - -+ «abstract» afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void +Overtrue\\PHPLint\\Event\\BeforeLintFileInterface + + + +«interface» +BeforeLintFileInterface + + ++ «abstract» beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void - + + +Symfony\\Component\\EventDispatcher\\EventDispatcherInterface + + + +«interface» +EventDispatcherInterface + + ++ «abstract» addListener(eventName : string, listener : callable, priority : int = 0) ++ «abstract» addSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) ++ «abstract» removeListener(eventName : string, listener : callable) ++ «abstract» removeSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) ++ «abstract» getListeners(eventName : string = «unknown») : array ++ «abstract» getListenerPriority(eventName : string, listener : callable) : ?int ++ «abstract» hasListeners(eventName : string = «unknown») : bool + + + +Symfony\\Component\\EventDispatcher\\EventDispatcher->Symfony\\Component\\EventDispatcher\\EventDispatcherInterface + + + + +Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface + + + +«interface» +EventDispatcherInterface + + ++ «abstract» dispatch(event : object, eventName : string = «unknown») : object + + + +Symfony\\Component\\EventDispatcher\\EventDispatcherInterface->Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface + + + + + Symfony\\Contracts\\EventDispatcher\\Event - - - -Event - - -+ isPropagationStopped() : bool -+ stopPropagation() : void + + + +Event + + ++ isPropagationStopped() : bool ++ stopPropagation() : void - + Symfony\\Component\\EventDispatcher\\GenericEvent->Symfony\\Contracts\\EventDispatcher\\Event - - + + ArrayAccess - - - -«interface» -ArrayAccess - - -+ «abstract» offsetExists(offset : mixed) -+ «abstract» offsetGet(offset : mixed) -+ «abstract» offsetSet(offset : mixed, value : mixed) -+ «abstract» offsetUnset(offset : mixed) + + + +«interface» +ArrayAccess + + ++ «abstract» offsetExists(offset : mixed) ++ «abstract» offsetGet(offset : mixed) ++ «abstract» offsetSet(offset : mixed, value : mixed) ++ «abstract» offsetUnset(offset : mixed) - + Symfony\\Component\\EventDispatcher\\GenericEvent->ArrayAccess - - + + IteratorAggregate - - - -«interface» -IteratorAggregate - - -+ «abstract» getIterator() + + + +«interface» +IteratorAggregate + + ++ «abstract» getIterator() - -Symfony\\Component\\EventDispatcher\\GenericEvent->IteratorAggregate - - - - - -Symfony\\Component\\EventDispatcher\\EventDispatcherInterface - - - -«interface» -EventDispatcherInterface - - -+ «abstract» addListener(eventName : string, listener : callable, priority : int = 0) -+ «abstract» addSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) -+ «abstract» removeListener(eventName : string, listener : callable) -+ «abstract» removeSubscriber(subscriber : Symfony\Component\EventDispatcher\EventSubscriberInterface) -+ «abstract» getListeners(eventName : string = «unknown») : array -+ «abstract» getListenerPriority(eventName : string, listener : callable) : ?int -+ «abstract» hasListeners(eventName : string = «unknown») : bool - - -Symfony\\Component\\EventDispatcher\\EventDispatcher->Symfony\\Component\\EventDispatcher\\EventDispatcherInterface - - +Symfony\\Component\\EventDispatcher\\GenericEvent->IteratorAggregate + + - - -Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface - - - -«interface» -EventDispatcherInterface - - -+ «abstract» dispatch(event : object, eventName : string = «unknown») : object + + +Psr\\EventDispatcher\\EventDispatcherInterface + + + +«interface» +EventDispatcherInterface + + ++ «abstract» dispatch(event : object) - - -Symfony\\Component\\EventDispatcher\\EventDispatcherInterface->Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface - - + + +Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface->Psr\\EventDispatcher\\EventDispatcherInterface + + - + Psr\\EventDispatcher\\StoppableEventInterface - - - -«interface» -StoppableEventInterface - - -+ «abstract» isPropagationStopped() : bool + + + +«interface» +StoppableEventInterface + + ++ «abstract» isPropagationStopped() : bool - + Symfony\\Contracts\\EventDispatcher\\Event->Psr\\EventDispatcher\\StoppableEventInterface - - - - - -Psr\\EventDispatcher\\EventDispatcherInterface - - - -«interface» -EventDispatcherInterface - - -+ «abstract» dispatch(event : object) - - - -Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface->Psr\\EventDispatcher\\EventDispatcherInterface - - + + Traversable - - - -«interface» -Traversable - - + + + +«interface» +Traversable + + - + IteratorAggregate->Traversable - - + + diff --git a/docs/assets/extension-uml-diagram.svg b/docs/assets/extension-uml-diagram.svg index e77a6def..a3cd6ab8 100644 --- a/docs/assets/extension-uml-diagram.svg +++ b/docs/assets/extension-uml-diagram.svg @@ -1,191 +1,230 @@ - - - + + %3 cluster_0 - -Overtrue\PHPLint\Extension + +Overtrue\PHPLint\Extension cluster_1 - -Symfony\Component\EventDispatcher + +Symfony\Component\EventDispatcher cluster_2 - -Overtrue\PHPLint\Event + +Overtrue\PHPLint\Event - + -Overtrue\\PHPLint\\Extension\\ProgressBar - - - -ProgressBar - - -+ «static» getSubscribedEvents() : array -+ initProgress(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void -+ beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void -+ afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void -+ beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void -+ afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void +Overtrue\\PHPLint\\Extension\\OutputFormat + + + +OutputFormat + + ++ __construct(outputOptions : array = []) ++ «static» getSubscribedEvents() : array ++ initFormat(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void ++ afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void - + Symfony\\Component\\EventDispatcher\\EventSubscriberInterface - - - -«interface» -EventSubscriberInterface - - -+ «abstract» «static» getSubscribedEvents() + + + +«interface» +EventSubscriberInterface + + ++ «abstract» «static» getSubscribedEvents() - + -Overtrue\\PHPLint\\Extension\\ProgressBar->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface - - - - - -Overtrue\\PHPLint\\Event\\BeforeCheckingInterface - - - -«interface» -BeforeCheckingInterface - - -+ «abstract» beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void - - - -Overtrue\\PHPLint\\Extension\\ProgressBar->Overtrue\\PHPLint\\Event\\BeforeCheckingInterface - - +Overtrue\\PHPLint\\Extension\\OutputFormat->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface + + Overtrue\\PHPLint\\Event\\AfterCheckingInterface - - - -«interface» -AfterCheckingInterface - - -+ «abstract» afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void + + + +«interface» +AfterCheckingInterface + + ++ «abstract» afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void - + + +Overtrue\\PHPLint\\Extension\\OutputFormat->Overtrue\\PHPLint\\Event\\AfterCheckingInterface + + + + + +Overtrue\\PHPLint\\Extension\\ProgressBar + + + +ProgressBar + + ++ «static» getSubscribedEvents() : array ++ initProgress(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void ++ beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void ++ afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void ++ beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void ++ afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void + + +Overtrue\\PHPLint\\Extension\\ProgressBar->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface + + + + + Overtrue\\PHPLint\\Extension\\ProgressBar->Overtrue\\PHPLint\\Event\\AfterCheckingInterface - - + + - + +Overtrue\\PHPLint\\Event\\BeforeCheckingInterface + + + +«interface» +BeforeCheckingInterface + + ++ «abstract» beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void + + + +Overtrue\\PHPLint\\Extension\\ProgressBar->Overtrue\\PHPLint\\Event\\BeforeCheckingInterface + + + + + Overtrue\\PHPLint\\Event\\BeforeLintFileInterface - - - -«interface» -BeforeLintFileInterface - - -+ «abstract» beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void + + + +«interface» +BeforeLintFileInterface + + ++ «abstract» beforeLintFile(event : Overtrue\PHPLint\Event\BeforeLintFileEvent) : void - + Overtrue\\PHPLint\\Extension\\ProgressBar->Overtrue\\PHPLint\\Event\\BeforeLintFileInterface - - + + - + Overtrue\\PHPLint\\Event\\AfterLintFileInterface - - - -«interface» -AfterLintFileInterface - - -+ «abstract» afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void + + + +«interface» +AfterLintFileInterface + + ++ «abstract» afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void - + Overtrue\\PHPLint\\Extension\\ProgressBar->Overtrue\\PHPLint\\Event\\AfterLintFileInterface - - + + + + + +Overtrue\\PHPLint\\Extension\\ProgressIndicator + + + +ProgressIndicator + + ++ «static» getSubscribedEvents() : array ++ initProgress(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void ++ beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void ++ afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void ++ afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void + + + +Overtrue\\PHPLint\\Extension\\ProgressIndicator->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface + + + + + +Overtrue\\PHPLint\\Extension\\ProgressIndicator->Overtrue\\PHPLint\\Event\\AfterCheckingInterface + + + + + +Overtrue\\PHPLint\\Extension\\ProgressIndicator->Overtrue\\PHPLint\\Event\\BeforeCheckingInterface + + + + + +Overtrue\\PHPLint\\Extension\\ProgressIndicator->Overtrue\\PHPLint\\Event\\AfterLintFileInterface + + - + Overtrue\\PHPLint\\Extension\\ProgressPrinter - - - -ProgressPrinter - - -+ «static» getSubscribedEvents() : array -+ initProgress(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void -+ beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void -+ afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void + + + +ProgressPrinter + + ++ «static» getSubscribedEvents() : array ++ initProgress(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void ++ beforeChecking(event : Overtrue\PHPLint\Event\BeforeCheckingEvent) : void ++ afterLintFile(event : Overtrue\PHPLint\Event\AfterLintFileEvent) : void - + Overtrue\\PHPLint\\Extension\\ProgressPrinter->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface - - + + - + Overtrue\\PHPLint\\Extension\\ProgressPrinter->Overtrue\\PHPLint\\Event\\BeforeCheckingInterface - - + + - + Overtrue\\PHPLint\\Extension\\ProgressPrinter->Overtrue\\PHPLint\\Event\\AfterLintFileInterface - - - - - -Overtrue\\PHPLint\\Extension\\OutputFormat - - - -OutputFormat - - -+ __construct(outputOptions : array = []) -+ «static» getSubscribedEvents() : array -+ initFormat(event : Symfony\Component\Console\Event\ConsoleCommandEvent) : void -+ afterChecking(event : Overtrue\PHPLint\Event\AfterCheckingEvent) : void - - - -Overtrue\\PHPLint\\Extension\\OutputFormat->Symfony\\Component\\EventDispatcher\\EventSubscriberInterface - - - - - -Overtrue\\PHPLint\\Extension\\OutputFormat->Overtrue\\PHPLint\\Event\\AfterCheckingInterface - - + + diff --git a/docs/assets/finder-uml-diagram.svg b/docs/assets/finder-uml-diagram.svg index fc5ca36d..5cdfd3dd 100644 --- a/docs/assets/finder-uml-diagram.svg +++ b/docs/assets/finder-uml-diagram.svg @@ -1,29 +1,53 @@ - - - + + %3 cluster_0 - -Overtrue\PHPLint + +Overtrue\PHPLint + + +cluster_1 + +0 Overtrue\\PHPLint\\Finder - - - -Finder - - -+ __construct(configResolver : Overtrue\PHPLint\Configuration\Resolver) -+ getFiles() : Symfony\Component\Finder\Finder + + + +Finder + + ++ __construct(configResolver : Overtrue\PHPLint\Configuration\Resolver) ++ jsonSerialize() : array ++ getFiles() : Symfony\Component\Finder\Finder + + + +JsonSerializable + + + +«interface» +JsonSerializable + + ++ «abstract» jsonSerialize() + + + +Overtrue\\PHPLint\\Finder->JsonSerializable + + diff --git a/docs/assets/helper-uml-diagram.svg b/docs/assets/helper-uml-diagram.svg new file mode 100644 index 00000000..b8f5850b --- /dev/null +++ b/docs/assets/helper-uml-diagram.svg @@ -0,0 +1,102 @@ + + + + + + +%3 + +cluster_0 + +Overtrue\PHPLint\Helper + + +cluster_1 + +Symfony\Component\Console\Helper + + + +Overtrue\\PHPLint\\Helper\\DebugFormatterHelper + + + +DebugFormatterHelper + ++ «static» COLORS : array = […] {readOnly} + + ++ getName() : string ++ start(id : string, message : string, prefix : string = 'RUN') : string ++ progress(id : string, buffer : string, error : bool = false, prefix : string = 'OUT', errorPrefix : string = 'ERR') : string ++ stop(id : string, message : string, successful : bool, prefix : string = 'RES') : string + + + +Symfony\\Component\\Console\\Helper\\Helper + + + +«abstract» +Helper + + ++ setHelperSet(helperSet : Symfony\Component\Console\Helper\HelperSet = «unknown») ++ getHelperSet() : ?Symfony\Component\Console\Helper\HelperSet ++ «static» width(string : string) : int ++ «static» length(string : string) : int ++ «static» substr(string : string, from : int, length : int = «unknown») : string ++ «static» formatTime(secs, precision : int = 1) ++ «static» formatMemory(memory : int) ++ «static» removeDecoration(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface, string : string) + + + +Overtrue\\PHPLint\\Helper\\DebugFormatterHelper->Symfony\\Component\\Console\\Helper\\Helper + + + + + +Overtrue\\PHPLint\\Helper\\ProcessHelper + + + +ProcessHelper + + ++ getName() : string ++ start(output : Symfony\Component\Console\Output\OutputInterface, process : Symfony\Component\Process\Process, callback : callable = «unknown», env : array = [], verbosity : int = Symfony\Component\Console\Output\OutputInterface\:\:VERBOSITY_VERY_VERBOSE) : Symfony\Component\Process\Process ++ isTerminated(output : Symfony\Component\Console\Output\OutputInterface, process : Symfony\Component\Process\Process, verbosity : int = Symfony\Component\Console\Output\OutputInterface\:\:VERBOSITY_VERY_VERBOSE) : bool + + + +Overtrue\\PHPLint\\Helper\\ProcessHelper->Symfony\\Component\\Console\\Helper\\Helper + + + + + +Symfony\\Component\\Console\\Helper\\HelperInterface + + + +«interface» +HelperInterface + + ++ «abstract» setHelperSet(helperSet : Symfony\Component\Console\Helper\HelperSet) ++ «abstract» getHelperSet() : ?Symfony\Component\Console\Helper\HelperSet ++ «abstract» getName() + + + +Symfony\\Component\\Console\\Helper\\Helper->Symfony\\Component\\Console\\Helper\\HelperInterface + + + + + diff --git a/docs/assets/linter-uml-diagram.svg b/docs/assets/linter-uml-diagram.svg new file mode 100644 index 00000000..c41e620c --- /dev/null +++ b/docs/assets/linter-uml-diagram.svg @@ -0,0 +1,29 @@ + + + + + + +%3 + +cluster_0 + +Overtrue\PHPLint + + + +Overtrue\\PHPLint\\Linter + + + +Linter + + ++ __construct(configResolver : Overtrue\PHPLint\Configuration\Resolver, dispatcher : Symfony\Component\EventDispatcher\EventDispatcherInterface, appVersion : string = '9\.1\.x\-dev', helperSet : Symfony\Component\Console\Helper\HelperSet = «unknown», output : Symfony\Component\Console\Output\OutputInterface = «unknown») ++ lintFiles(finder : Symfony\Component\Finder\Finder, startTime : float = «unknown») : Overtrue\PHPLint\Output\LinterOutput + + + diff --git a/docs/assets/output-uml-diagram.svg b/docs/assets/output-uml-diagram.svg index 8937c1a2..110fd739 100644 --- a/docs/assets/output-uml-diagram.svg +++ b/docs/assets/output-uml-diagram.svg @@ -1,307 +1,362 @@ - - - + + %3 cluster_0 - -Overtrue\PHPLint\Output + +Overtrue\PHPLint\Output cluster_1 - -Symfony\Component\Console\Output + +Symfony\Component\Console\Output - - -Overtrue\\PHPLint\\Output\\OutputInterface - - - -«interface» -OutputInterface - - -+ «abstract» format(results : Overtrue\PHPLint\Output\LinterOutput) : void - - - -Overtrue\\PHPLint\\Output\\LinterOutput - - - -LinterOutput - - -+ __construct(results : array, finder : Symfony\Component\Finder\Finder) -+ getContext() : array -+ setContext(configResolver : Overtrue\PHPLint\Configuration\Resolver, startTime : float) : void -+ hasFailures() : bool -+ getFailures() : array -+ hasErrors() : bool -+ getErrors() : array -+ hasWarnings() : bool -+ getWarnings() : array -+ getHits() : array -+ getMisses() : array + +cluster_2 + +0 - + Overtrue\\PHPLint\\Output\\ChainOutput - - - -ChainOutput - - -+ __construct(handlers : array) -+ format(results : Overtrue\PHPLint\Output\LinterOutput) : void + + + +ChainOutput + + ++ __construct(handlers : array) ++ format(results : Overtrue\PHPLint\Output\LinterOutput) : void + + + +Overtrue\\PHPLint\\Output\\OutputInterface + + + +«interface» +OutputInterface + + ++ «abstract» format(results : Overtrue\PHPLint\Output\LinterOutput) : void Overtrue\\PHPLint\\Output\\ChainOutput->Overtrue\\PHPLint\\Output\\OutputInterface - - + + - + Overtrue\\PHPLint\\Output\\ConsoleOutput - - - -ConsoleOutput - -+ «static» MAX_LINE_LENGTH : int = 120 {readOnly} - - -+ __construct(verbosity : int = parent\:\:VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») -+ setApplicationVersion(version : string) : void -+ setConfigResolver(resolver : Overtrue\PHPLint\Configuration\Resolver) : void -+ format(results : Overtrue\PHPLint\Output\LinterOutput) : void -+ createProgressBar(max = 0) : Symfony\Component\Console\Helper\ProgressBar -+ progressStart(max : int = 0) -+ progressAdvance(step : int = 1) -+ progressFinish() : void -+ progressMessage(message : string, name : string = 'message') -+ progressPrinterAdvance(maxSteps : int, status : string, fileInfo : Symfony\Component\Finder\SplFileInfo) : void -+ headerBlock(appVersion : string, configFile : string) : void -+ configBlock(options : array) : void -+ consumeBlock(timeUsage : string, memUsage : string, cacheUsage : string) : void -+ errorBlock(fileCount : int, errorCount : int) : void -+ successBlock(fileCount : int) : void -+ warningBlock(message : string = 'Could\ not\ find\ files\ to\ lint') : void -+ newLine(count : int = 1) + + + +ConsoleOutput + ++ «static» MAX_LINE_LENGTH : int = 120 {readOnly} ++ «static» NO_FILE_TO_LINT : string = "Could\ not\ find\ any\ files\ to\ lint" {readOnly} + + ++ __construct(verbosity : int = parent\:\:VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») ++ format(results : Overtrue\PHPLint\Output\LinterOutput) : void ++ createProgressBar(max = 0) : Symfony\Component\Console\Helper\ProgressBar ++ progressStart(max : int = 0) : void ++ progressAdvance(step : int = 1) : void ++ progressFinish() : void ++ progressMessage(message : string, name : string = 'message') : void ++ progressPrinterAdvance(maxSteps : int, status : string, fileInfo : Symfony\Component\Finder\SplFileInfo, step : int = 1) : void ++ headerBlock(appVersion : string, configFile : string) : void ++ configBlock(options : array) : void ++ consumeBlock(timeUsage : string, memUsage : string, cacheUsage : string, processCount : int) : void ++ errorBlock(fileCount : int, errorCount : int) : void ++ successBlock(fileCount : int) : void ++ warningBlock(message : string = NO_FILE_TO_LINT) : void ++ newLine(count : int = 1) : void - - -Overtrue\\PHPLint\\Output\\ConsoleOutput->Overtrue\\PHPLint\\Output\\OutputInterface - - + + +Overtrue\\PHPLint\\Output\\ConsoleOutputInterface + + + +«interface» +ConsoleOutputInterface + ++ «static» NO_FILE_TO_LINT : string = "Could\ not\ find\ any\ files\ to\ lint" {readOnly} + + ++ «abstract» createProgressBar(max = 0) : Symfony\Component\Console\Helper\ProgressBar ++ «abstract» progressStart(max : int = 0) : void ++ «abstract» progressAdvance(step : int = 1) : void ++ «abstract» progressFinish() : void ++ «abstract» progressMessage(message : string, name : string = 'message') : void ++ «abstract» progressPrinterAdvance(maxSteps : int, status : string, fileInfo : Symfony\Component\Finder\SplFileInfo, step : int = 1) : void ++ «abstract» headerBlock(appVersion : string, configFile : string) : void ++ «abstract» configBlock(options : array) : void ++ «abstract» consumeBlock(timeUsage : string, memUsage : string, cacheUsage : string, processCount : int) : void ++ «abstract» errorBlock(fileCount : int, errorCount : int) : void ++ «abstract» successBlock(fileCount : int) : void ++ «abstract» warningBlock(message : string = NO_FILE_TO_LINT) : void ++ «abstract» newLine(count : int = 1) : void + + + +Overtrue\\PHPLint\\Output\\ConsoleOutput->Overtrue\\PHPLint\\Output\\ConsoleOutputInterface + + - + Symfony\\Component\\Console\\Output\\ConsoleOutput - - - -ConsoleOutput - - -+ __construct(verbosity : int = VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») -+ section() : Symfony\Component\Console\Output\ConsoleSectionOutput -+ setDecorated(decorated : bool) -+ setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) -+ setVerbosity(level : int) -+ getErrorOutput() : Symfony\Component\Console\Output\OutputInterface -+ setErrorOutput(error : Symfony\Component\Console\Output\OutputInterface) + + + +ConsoleOutput + + ++ __construct(verbosity : int = VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») ++ section() : Symfony\Component\Console\Output\ConsoleSectionOutput ++ setDecorated(decorated : bool) ++ setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) ++ setVerbosity(level : int) ++ getErrorOutput() : Symfony\Component\Console\Output\OutputInterface ++ setErrorOutput(error : Symfony\Component\Console\Output\OutputInterface) Overtrue\\PHPLint\\Output\\ConsoleOutput->Symfony\\Component\\Console\\Output\\ConsoleOutput - - + + + + + +Overtrue\\PHPLint\\Output\\ConsoleOutputInterface->Overtrue\\PHPLint\\Output\\OutputInterface + + Overtrue\\PHPLint\\Output\\JsonOutput - - - -JsonOutput - - -+ format(results : Overtrue\PHPLint\Output\LinterOutput) : void + + + +JsonOutput + + ++ format(results : Overtrue\PHPLint\Output\LinterOutput) : void - + Overtrue\\PHPLint\\Output\\JsonOutput->Overtrue\\PHPLint\\Output\\OutputInterface - - + + - + Symfony\\Component\\Console\\Output\\StreamOutput - - - -StreamOutput - - -+ __construct(stream : resource, verbosity : int = VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») -+ getStream() + + + +StreamOutput + + ++ __construct(stream : resource, verbosity : int = VERBOSITY_NORMAL, decorated : bool = «unknown», formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») ++ getStream() - + Overtrue\\PHPLint\\Output\\JsonOutput->Symfony\\Component\\Console\\Output\\StreamOutput - - + + Overtrue\\PHPLint\\Output\\JunitOutput - - - -JunitOutput - - -+ format(results : Overtrue\PHPLint\Output\LinterOutput) : void + + + +JunitOutput + + ++ format(results : Overtrue\PHPLint\Output\LinterOutput) : void - + Overtrue\\PHPLint\\Output\\JunitOutput->Overtrue\\PHPLint\\Output\\OutputInterface - - + + - + Overtrue\\PHPLint\\Output\\JunitOutput->Symfony\\Component\\Console\\Output\\StreamOutput - - + + + + + +Overtrue\\PHPLint\\Output\\LinterOutput + + + +LinterOutput + + ++ __construct(results : array, finder : Symfony\Component\Finder\Finder) ++ count() : int ++ getContext() : array ++ setContext(configResolver : Overtrue\PHPLint\Configuration\Resolver, startTime : float, processCount : int) : void ++ hasFailures() : bool ++ getFailures() : array ++ hasErrors() : bool ++ getErrors() : array ++ hasWarnings() : bool ++ getWarnings() : array ++ getHits() : array ++ getMisses() : array + + + +Countable + + + +«interface» +Countable + + ++ «abstract» count() + + + +Overtrue\\PHPLint\\Output\\LinterOutput->Countable + + Symfony\\Component\\Console\\Output\\ConsoleOutput->Symfony\\Component\\Console\\Output\\StreamOutput - - + + - + Symfony\\Component\\Console\\Output\\ConsoleOutputInterface - - - -«interface» -ConsoleOutputInterface - -+ «static» VERBOSITY_QUIET : int = 16 {readOnly} -+ «static» VERBOSITY_NORMAL : int = 32 {readOnly} -+ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} -+ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} -+ «static» VERBOSITY_DEBUG : int = 256 {readOnly} -+ «static» OUTPUT_NORMAL : int = 1 {readOnly} -+ «static» OUTPUT_RAW : int = 2 {readOnly} -+ «static» OUTPUT_PLAIN : int = 4 {readOnly} - - -+ «abstract» getErrorOutput() : Symfony\Component\Console\Output\OutputInterface -+ «abstract» setErrorOutput(error : Symfony\Component\Console\Output\OutputInterface) -+ «abstract» section() : Symfony\Component\Console\Output\ConsoleSectionOutput + + + +«interface» +ConsoleOutputInterface + ++ «static» VERBOSITY_QUIET : int = 16 {readOnly} ++ «static» VERBOSITY_NORMAL : int = 32 {readOnly} ++ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} ++ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} ++ «static» VERBOSITY_DEBUG : int = 256 {readOnly} ++ «static» OUTPUT_NORMAL : int = 1 {readOnly} ++ «static» OUTPUT_RAW : int = 2 {readOnly} ++ «static» OUTPUT_PLAIN : int = 4 {readOnly} + + ++ «abstract» getErrorOutput() : Symfony\Component\Console\Output\OutputInterface ++ «abstract» setErrorOutput(error : Symfony\Component\Console\Output\OutputInterface) ++ «abstract» section() : Symfony\Component\Console\Output\ConsoleSectionOutput Symfony\\Component\\Console\\Output\\ConsoleOutput->Symfony\\Component\\Console\\Output\\ConsoleOutputInterface - - + + - + Symfony\\Component\\Console\\Output\\Output - - - -«abstract» -Output - -+ «static» VERBOSITY_QUIET : int = 16 {readOnly} -+ «static» VERBOSITY_NORMAL : int = 32 {readOnly} -+ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} -+ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} -+ «static» VERBOSITY_DEBUG : int = 256 {readOnly} -+ «static» OUTPUT_NORMAL : int = 1 {readOnly} -+ «static» OUTPUT_RAW : int = 2 {readOnly} -+ «static» OUTPUT_PLAIN : int = 4 {readOnly} - - -+ __construct(verbosity : int = VERBOSITY_NORMAL, decorated : bool = false, formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») -+ setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) -+ getFormatter() : Symfony\Component\Console\Formatter\OutputFormatterInterface -+ setDecorated(decorated : bool) -+ isDecorated() : bool -+ setVerbosity(level : int) -+ getVerbosity() : int -+ isQuiet() : bool -+ isVerbose() : bool -+ isVeryVerbose() : bool -+ isDebug() : bool -+ writeln(messages, options : int = OUTPUT_NORMAL) -+ write(messages, newline : bool = false, options : int = OUTPUT_NORMAL) + + + +«abstract» +Output + ++ «static» VERBOSITY_QUIET : int = 16 {readOnly} ++ «static» VERBOSITY_NORMAL : int = 32 {readOnly} ++ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} ++ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} ++ «static» VERBOSITY_DEBUG : int = 256 {readOnly} ++ «static» OUTPUT_NORMAL : int = 1 {readOnly} ++ «static» OUTPUT_RAW : int = 2 {readOnly} ++ «static» OUTPUT_PLAIN : int = 4 {readOnly} + + ++ __construct(verbosity : int = VERBOSITY_NORMAL, decorated : bool = false, formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface = «unknown») ++ setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) ++ getFormatter() : Symfony\Component\Console\Formatter\OutputFormatterInterface ++ setDecorated(decorated : bool) ++ isDecorated() : bool ++ setVerbosity(level : int) ++ getVerbosity() : int ++ isQuiet() : bool ++ isVerbose() : bool ++ isVeryVerbose() : bool ++ isDebug() : bool ++ writeln(messages, options : int = OUTPUT_NORMAL) ++ write(messages, newline : bool = false, options : int = OUTPUT_NORMAL) Symfony\\Component\\Console\\Output\\StreamOutput->Symfony\\Component\\Console\\Output\\Output - - + + - + Symfony\\Component\\Console\\Output\\OutputInterface - - - -«interface» -OutputInterface - -+ «static» VERBOSITY_QUIET : int = 16 {readOnly} -+ «static» VERBOSITY_NORMAL : int = 32 {readOnly} -+ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} -+ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} -+ «static» VERBOSITY_DEBUG : int = 256 {readOnly} -+ «static» OUTPUT_NORMAL : int = 1 {readOnly} -+ «static» OUTPUT_RAW : int = 2 {readOnly} -+ «static» OUTPUT_PLAIN : int = 4 {readOnly} - - -+ «abstract» write(messages, newline : bool = false, options : int = 0) -+ «abstract» writeln(messages, options : int = 0) -+ «abstract» setVerbosity(level : int) -+ «abstract» getVerbosity() : int -+ «abstract» isQuiet() : bool -+ «abstract» isVerbose() : bool -+ «abstract» isVeryVerbose() : bool -+ «abstract» isDebug() : bool -+ «abstract» setDecorated(decorated : bool) -+ «abstract» isDecorated() : bool -+ «abstract» setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) -+ «abstract» getFormatter() : Symfony\Component\Console\Formatter\OutputFormatterInterface + + + +«interface» +OutputInterface + ++ «static» VERBOSITY_QUIET : int = 16 {readOnly} ++ «static» VERBOSITY_NORMAL : int = 32 {readOnly} ++ «static» VERBOSITY_VERBOSE : int = 64 {readOnly} ++ «static» VERBOSITY_VERY_VERBOSE : int = 128 {readOnly} ++ «static» VERBOSITY_DEBUG : int = 256 {readOnly} ++ «static» OUTPUT_NORMAL : int = 1 {readOnly} ++ «static» OUTPUT_RAW : int = 2 {readOnly} ++ «static» OUTPUT_PLAIN : int = 4 {readOnly} + + ++ «abstract» write(messages, newline : bool = false, options : int = 0) ++ «abstract» writeln(messages, options : int = 0) ++ «abstract» setVerbosity(level : int) ++ «abstract» getVerbosity() : int ++ «abstract» isQuiet() : bool ++ «abstract» isVerbose() : bool ++ «abstract» isVeryVerbose() : bool ++ «abstract» isDebug() : bool ++ «abstract» setDecorated(decorated : bool) ++ «abstract» isDecorated() : bool ++ «abstract» setFormatter(formatter : Symfony\Component\Console\Formatter\OutputFormatterInterface) ++ «abstract» getFormatter() : Symfony\Component\Console\Formatter\OutputFormatterInterface Symfony\\Component\\Console\\Output\\Output->Symfony\\Component\\Console\\Output\\OutputInterface - - + + Symfony\\Component\\Console\\Output\\ConsoleOutputInterface->Symfony\\Component\\Console\\Output\\OutputInterface - - + + diff --git a/docs/assets/process-uml-diagram.svg b/docs/assets/process-uml-diagram.svg index f7da112e..01ae617e 100644 --- a/docs/assets/process-uml-diagram.svg +++ b/docs/assets/process-uml-diagram.svg @@ -1,178 +1,185 @@ - - - + + %3 cluster_0 - -Overtrue\PHPLint\Process + +Overtrue\PHPLint\Process cluster_1 - -Symfony\Component\Process + +Symfony\Component\Process cluster_2 - -0 - - - -Overtrue\\PHPLint\\Process\\LintProcessItem - - - -LintProcessItem - - -+ hasSyntaxError() : bool -+ hasSyntaxWarning() : bool -+ getMessage() : string -+ getLine() : int + +0 - + Overtrue\\PHPLint\\Process\\LintProcess - - - -LintProcess - - -+ __construct(command : array, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) -+ getItem(output : string) : Overtrue\PHPLint\Process\LintProcessItem + + + +LintProcess + + ++ __construct(command : array, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) ++ setHelper(helper : Symfony\Component\Console\Helper\HelperInterface) : self ++ setOutput(output : Symfony\Component\Console\Output\OutputInterface) : self ++ setFiles(files : array) : self ++ getFiles() : array ++ getItem(fileInfo : Symfony\Component\Finder\SplFileInfo) : Overtrue\PHPLint\Process\LintProcessItem ++ begin(callback : callable = «unknown», env : array = []) : void ++ isFinished() : bool Symfony\\Component\\Process\\Process - - - -Process - -+ «static» ERR : string = "err" {readOnly} -+ «static» OUT : string = "out" {readOnly} -+ «static» STATUS_READY : string = "ready" {readOnly} -+ «static» STATUS_STARTED : string = "started" {readOnly} -+ «static» STATUS_TERMINATED : string = "terminated" {readOnly} -+ «static» STDIN : int = 0 {readOnly} -+ «static» STDOUT : int = 1 {readOnly} -+ «static» STDERR : int = 2 {readOnly} -+ «static» TIMEOUT_PRECISION : float = 0.2 {readOnly} -+ «static» ITER_NON_BLOCKING : int = 1 {readOnly} -+ «static» ITER_KEEP_OUTPUT : int = 2 {readOnly} -+ «static» ITER_SKIP_OUT : int = 4 {readOnly} -+ «static» ITER_SKIP_ERR : int = 8 {readOnly} - -+ «static» exitCodes = […] - -+ __construct(command : array, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) -+ «static» fromShellCommandline(command : string, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) : static -+ __sleep() : array -+ __wakeup() -+ __destruct() -+ __clone() -+ run(callback : callable = «unknown», env : array = []) : int -+ mustRun(callback : callable = «unknown», env : array = []) : static -+ start(callback : callable = «unknown», env : array = []) -+ restart(callback : callable = «unknown», env : array = []) : static -+ wait(callback : callable = «unknown») : int -+ waitUntil(callback : callable) : bool -+ getPid() : ?int -+ signal(signal : int) : static -+ disableOutput() : static -+ enableOutput() : static -+ isOutputDisabled() : bool -+ getOutput() : string -+ getIncrementalOutput() : string -+ getIterator(flags : int = 0) : Generator -+ clearOutput() : static -+ getErrorOutput() : string -+ getIncrementalErrorOutput() : string -+ clearErrorOutput() : static -+ getExitCode() : ?int -+ getExitCodeText() : ?string -+ isSuccessful() : bool -+ hasBeenSignaled() : bool -+ getTermSignal() : int -+ hasBeenStopped() : bool -+ getStopSignal() : int -+ isRunning() : bool -+ isStarted() : bool -+ isTerminated() : bool -+ getStatus() : string -+ stop(timeout : float = 10, signal : int = «unknown») : ?int -+ addOutput(line : string) -+ addErrorOutput(line : string) -+ getLastOutputTime() : ?float -+ getCommandLine() : string -+ getTimeout() : ?float -+ getIdleTimeout() : ?float -+ setTimeout(timeout : float) : static -+ setIdleTimeout(timeout : float) : static -+ setTty(tty : bool) : static -+ isTty() : bool -+ setPty(bool : bool) : static -+ isPty() : bool -+ getWorkingDirectory() : ?string -+ setWorkingDirectory(cwd : string) : static -+ getEnv() : array -+ setEnv(env : array) : static -+ getInput() -+ setInput(input : mixed) : static -+ checkTimeout() -+ getStartTime() : float -+ setOptions(options : array) -+ «static» isTtySupported() : bool -+ «static» isPtySupported() : bool + + + +Process + ++ «static» ERR : string = "err" {readOnly} ++ «static» OUT : string = "out" {readOnly} ++ «static» STATUS_READY : string = "ready" {readOnly} ++ «static» STATUS_STARTED : string = "started" {readOnly} ++ «static» STATUS_TERMINATED : string = "terminated" {readOnly} ++ «static» STDIN : int = 0 {readOnly} ++ «static» STDOUT : int = 1 {readOnly} ++ «static» STDERR : int = 2 {readOnly} ++ «static» TIMEOUT_PRECISION : float = 0.2 {readOnly} ++ «static» ITER_NON_BLOCKING : int = 1 {readOnly} ++ «static» ITER_KEEP_OUTPUT : int = 2 {readOnly} ++ «static» ITER_SKIP_OUT : int = 4 {readOnly} ++ «static» ITER_SKIP_ERR : int = 8 {readOnly} + ++ «static» exitCodes = […] + ++ __construct(command : array, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) ++ «static» fromShellCommandline(command : string, cwd : string = «unknown», env : array = «unknown», input : mixed = «unknown», timeout : float = 60) : static ++ __sleep() : array ++ __wakeup() ++ __destruct() ++ __clone() ++ run(callback : callable = «unknown», env : array = []) : int ++ mustRun(callback : callable = «unknown», env : array = []) : static ++ start(callback : callable = «unknown», env : array = []) ++ restart(callback : callable = «unknown», env : array = []) : static ++ wait(callback : callable = «unknown») : int ++ waitUntil(callback : callable) : bool ++ getPid() : ?int ++ signal(signal : int) : static ++ disableOutput() : static ++ enableOutput() : static ++ isOutputDisabled() : bool ++ getOutput() : string ++ getIncrementalOutput() : string ++ getIterator(flags : int = 0) : Generator ++ clearOutput() : static ++ getErrorOutput() : string ++ getIncrementalErrorOutput() : string ++ clearErrorOutput() : static ++ getExitCode() : ?int ++ getExitCodeText() : ?string ++ isSuccessful() : bool ++ hasBeenSignaled() : bool ++ getTermSignal() : int ++ hasBeenStopped() : bool ++ getStopSignal() : int ++ isRunning() : bool ++ isStarted() : bool ++ isTerminated() : bool ++ getStatus() : string ++ stop(timeout : float = 10, signal : int = «unknown») : ?int ++ addOutput(line : string) : void ++ addErrorOutput(line : string) : void ++ getLastOutputTime() : ?float ++ getCommandLine() : string ++ getTimeout() : ?float ++ getIdleTimeout() : ?float ++ setTimeout(timeout : float) : static ++ setIdleTimeout(timeout : float) : static ++ setTty(tty : bool) : static ++ isTty() : bool ++ setPty(bool : bool) : static ++ isPty() : bool ++ getWorkingDirectory() : ?string ++ setWorkingDirectory(cwd : string) : static ++ getEnv() : array ++ setEnv(env : array) : static ++ getInput() ++ setInput(input : mixed) : static ++ checkTimeout() ++ getStartTime() : float ++ setOptions(options : array) ++ «static» isTtySupported() : bool ++ «static» isPtySupported() : bool Overtrue\\PHPLint\\Process\\LintProcess->Symfony\\Component\\Process\\Process - - + + + + + +Overtrue\\PHPLint\\Process\\LintProcessItem + + + +LintProcessItem + + ++ hasSyntaxError() : bool ++ hasSyntaxWarning() : bool ++ getMessage() : string ++ getLine() : int ++ getFileInfo() : Symfony\Component\Finder\SplFileInfo IteratorAggregate - - - -«interface» -IteratorAggregate - - -+ «abstract» getIterator() + + + +«interface» +IteratorAggregate + + ++ «abstract» getIterator() Symfony\\Component\\Process\\Process->IteratorAggregate - - + + Traversable - - - -«interface» -Traversable - - + + + +«interface» +Traversable + + IteratorAggregate->Traversable - - + +