Upgrading symfony/console 4 to 5
Breakingv4.4.49 → v5.4.55Breaking10Security1Deprecated1New7Changed5Fixed124
Fetching 104 releases from GitHub…103 / 104
SecurityEscapes context strings written to the terminal to prevent terminal escape sequence injection.#65692 ↗
BreakingUpgrade verdict
10 breaking changes and a security fix.
In plain terms
- Hidden commands can no longer be run by typing a shortened version of their name. You must type the full name.
- One table styling method was replaced by a new one with a different name.
- The method for setting the horizontal border character was replaced by a new method.
- The method for reading the horizontal border character was replaced by a new method.
Must act Top 5 of 12 that need code or config changes
PHP requirement changed in v5.1.0-RC2: >=7.1.3 → >=7.2.5.
What you must change
Breaking10
Removes support for finding hidden commands using an abbreviation; use the full name instead.
Removes
TableStyle::setCrossingChar() in favor of TableStyle::setDefaultCrossingChar().TableStyle::setCrossingChar()TableStyle::setDefaultCrossingChar()Removes
TableStyle::setHorizontalBorderChar() in favor of TableStyle::setDefaultCrossingChars().TableStyle::setHorizontalBorderChar()TableStyle::setDefaultCrossingChars()Removes
TableStyle::getHorizontalBorderChar() in favor of TableStyle::getBorderChars().TableStyle::getHorizontalBorderChar()TableStyle::getBorderChars()Removes
TableStyle::setVerticalBorderChar() in favor of TableStyle::setVerticalBorderChars().TableStyle::setVerticalBorderChar()TableStyle::setVerticalBorderChars()Removes
TableStyle::getVerticalBorderChar() in favor of TableStyle::getBorderChars().TableStyle::getVerticalBorderChar()TableStyle::getBorderChars()Removes support for returning
null from Command::execute(); return 0 instead.Command::execute()Renames
Application::renderException() and Application::doRenderException() to renderThrowable() and doRenderThrowable().Application::renderException()Application::doRenderException()Application::renderThrowable()Application::doRenderThrowable()ProcessHelper::run() accepts only array|Symfony\Component\Process\Process for its command argument.ProcessHelper::run()Symfony\Component\Process\ProcessApplication::setDispatcher accepts only Symfony\Contracts\EventDispatcher\EventDispatcherInterface for its dispatcher argument.Application::setDispatcherSymfony\Contracts\EventDispatcher\EventDispatcherInterfaceSecurity1
Escapes context strings written to the terminal to prevent terminal escape sequence injection.
Deprecations to plan for
Deprecated1
Deprecates HelperSet::setCommand() and getCommand().
HelperSet::setCommand()HelperSet::getCommand()API changes
Generated by DepDelta from published PHP source. Not mixed with prose notes.
- removed:
method Application.renderException(\Exception $e, OutputInterface $output) - removed:
protected method Application.doRenderException(\Exception $e, OutputInterface $output) - changed:
method Application.all($namespace = …) → method Application.all(?string $namespace = …) - changed:
method Application.extractNamespace($name, $limit = …) → method Application.extractNamespace(string $name, ?int $limit = …) - changed:
method Application.find($name) → method Application.find(string $name) - changed:
method Application.findNamespace($namespace) → method Application.findNamespace(string $namespace) - changed:
method Application.get($name) → method Application.get(string $name) - changed:
method Application.has($name) → method Application.has(string $name) - changed:
method Application.register($name) → method Application.register(string $name) - changed:
method Application.run(InputInterface $input = …, OutputInterface $output = …) → method Application.run(?InputInterface $input = …, ?OutputInterface $output = …) - changed:
method Application.setAutoExit($boolean) → method Application.setAutoExit(bool $boolean) - changed:
method Application.setCatchExceptions($boolean) → method Application.setCatchExceptions(bool $boolean) - changed:
method Application.setDefaultCommand($commandName, $isSingleCommand = …) → method Application.setDefaultCommand(string $commandName, bool $isSingleCommand = …) - changed:
method Application.setName($name) → method Application.setName(string $name) - changed:
method Application.setVersion($version) → method Application.setVersion(string $version) - changed:
static method Application.getAbbreviations($names) → static method Application.getAbbreviations(array $names) - changed:
static method Terminal.hasSttyAvailable() → static method Terminal.hasSttyAvailable(): bool - added:
class SingleCommandApplication extends Command - added:
const ConsoleEvents.ALIASES - added:
const ConsoleEvents.SIGNAL - added:
constructor Color(string $foreground = …, string $background = …, array $options = …) - added:
constructor Cursor(OutputInterface $output, $input = …) - added:
final class Color - added:
final class Cursor - added:
method Application.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method Application.getSignalRegistry(): SignalRegistry - added:
method Application.setSignalsToDispatchEvent(int ...$signalsToDispatchEvent) - added:
method Color.apply(string $text): string - added:
method Color.set(): string - added:
method Color.unset(): string - added:
method Cursor.clearLine(): self - added:
method Cursor.clearLineAfter(): self - added:
method Cursor.clearOutput(): self - added:
method Cursor.clearScreen(): self - added:
method Cursor.getCurrentPosition(): array - added:
method Cursor.hide(): self - added:
method Cursor.moveDown(int $lines = …): self - added:
method Cursor.moveLeft(int $columns = …): self - added:
method Cursor.moveRight(int $columns = …): self - added:
method Cursor.moveToColumn(int $column): self - added:
method Cursor.moveToPosition(int $column, int $row): self - added:
method Cursor.moveUp(int $lines = …): self - added:
method Cursor.restorePosition(): self - added:
method Cursor.savePosition(): self - added:
method Cursor.show(): self - added:
method SingleCommandApplication.run(?InputInterface $input = …, ?OutputInterface $output = …): int - added:
method SingleCommandApplication.setAutoExit(bool $autoExit): self - added:
method SingleCommandApplication.setVersion(string $version): self
- added:
class AsCommand - added:
constructor AsCommand(string $name, ?string $description = …, array $aliases = …, bool $hidden = …) - added:
property AsCommand.description: ?string - added:
property AsCommand.name: string
- added:
class GithubActionReporter - added:
constructor GithubActionReporter(OutputInterface $output) - added:
method GithubActionReporter.debug(string $message, ?string $file = …, ?int $line = …, ?int $col = …): void - added:
method GithubActionReporter.error(string $message, ?string $file = …, ?int $line = …, ?int $col = …): void - added:
method GithubActionReporter.warning(string $message, ?string $file = …, ?int $line = …, ?int $col = …): void - added:
static method GithubActionReporter.isGithubActionEnvironment(): bool
- removed:
method ListCommand.getNativeDefinition() - changed:
constructor Command(string $name = …) → constructor Command(?string $name = …) - changed:
method Command.addArgument($name, $mode = …, $description = …, $default = …) → method Command.addArgument(string $name, ?int $mode = …, string $description = …, $default = …) - changed:
method Command.addOption($name, $shortcut = …, $mode = …, $description = …, $default = …) → method Command.addOption(string $name, $shortcut = …, ?int $mode = …, string $description = …, $default = …) - changed:
method Command.addUsage($usage) → method Command.addUsage(string $usage) - changed:
method Command.getHelper($name) → method Command.getHelper(string $name) - changed:
method Command.getSynopsis($short = …) → method Command.getSynopsis(bool $short = …) - changed:
method Command.mergeApplicationDefinition($mergeArgs = …) → method Command.mergeApplicationDefinition(bool $mergeArgs = …) - changed:
method Command.setAliases($aliases) → method Command.setAliases(iterable $aliases) - changed:
method Command.setApplication(Application $application = …) → method Command.setApplication(?Application $application = …) - changed:
method Command.setDescription($description) → method Command.setDescription(string $description) - changed:
method Command.setHelp($help) → method Command.setHelp(string $help) - changed:
method Command.setHidden($hidden) → method Command.setHidden(bool $hidden) - changed:
method Command.setName($name) → method Command.setName(string $name) - changed:
method Command.setProcessTitle($title) → method Command.setProcessTitle(string $title) - added:
const Command.FAILURE - added:
const Command.INVALID - added:
const Command.SUCCESS - added:
constructor CompleteCommand(array $completionOutputs = …) - added:
constructor LazyCommand(string $name, array $aliases, string $description, bool $isHidden, \Closure $commandFactory, ?bool $isEnabled = …) - added:
final class CompleteCommand extends Command - added:
final class DumpCompletionCommand extends Command - added:
final class LazyCommand extends Command - added:
interface SignalableCommandInterface - added:
method Command.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method DumpCompletionCommand.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method HelpCommand.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method LazyCommand.addArgument(string $name, ?int $mode = …, string $description = …, $default = …): self - added:
method LazyCommand.addOption(string $name, $shortcut = …, ?int $mode = …, string $description = …, $default = …): self - added:
method LazyCommand.addUsage(string $usage): self - added:
method LazyCommand.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method LazyCommand.getCommand(): parent - added:
method LazyCommand.getDefinition(): InputDefinition - added:
method LazyCommand.getHelp(): string - added:
method LazyCommand.getHelper(string $name) - added:
method LazyCommand.getNativeDefinition(): InputDefinition - added:
method LazyCommand.getProcessedHelp(): string - added:
method LazyCommand.getSynopsis(bool $short = …): string - added:
method LazyCommand.getUsages(): array - added:
method LazyCommand.ignoreValidationErrors(): void - added:
method LazyCommand.isEnabled(): bool - added:
method LazyCommand.mergeApplicationDefinition(bool $mergeArgs = …): void - added:
method LazyCommand.run(InputInterface $input, OutputInterface $output): int - added:
method LazyCommand.setApplication(?Application $application = …): void - added:
method LazyCommand.setCode(callable $code): self - added:
method LazyCommand.setDefinition($definition): self - added:
method LazyCommand.setHelp(string $help): self - added:
method LazyCommand.setHelperSet(HelperSet $helperSet): void - added:
method LazyCommand.setProcessTitle(string $title): self - added:
method ListCommand.complete(CompletionInput $input, CompletionSuggestions $suggestions): void - added:
method SignalableCommandInterface.getSubscribedSignals(): array - added:
method SignalableCommandInterface.handleSignal(int $signal): void - added:
protected method CompleteCommand.configure(): void - added:
protected method CompleteCommand.execute(InputInterface $input, OutputInterface $output): int - added:
protected method CompleteCommand.initialize(InputInterface $input, OutputInterface $output) - added:
protected method DumpCompletionCommand.configure() - added:
protected method DumpCompletionCommand.execute(InputInterface $input, OutputInterface $output): int - added:
protected static property Command.defaultDescription - added:
protected static property CompleteCommand.defaultDescription - added:
protected static property CompleteCommand.defaultName - added:
protected static property DumpCompletionCommand.defaultDescription - added:
protected static property DumpCompletionCommand.defaultName - added:
static method Command.getDefaultDescription(): ?string
- changed:
method CommandLoaderInterface.get($name) → method CommandLoaderInterface.get(string $name) - changed:
method CommandLoaderInterface.has($name) → method CommandLoaderInterface.has(string $name) - changed:
method ContainerCommandLoader.get($name) → method ContainerCommandLoader.get(string $name) - changed:
method ContainerCommandLoader.has($name) → method ContainerCommandLoader.has(string $name) - changed:
method FactoryCommandLoader.get($name) → method FactoryCommandLoader.get(string $name) - changed:
method FactoryCommandLoader.has($name) → method FactoryCommandLoader.has(string $name)
- added:
class Suggestion - added:
const CompletionInput.TYPE_ARGUMENT_VALUE - added:
const CompletionInput.TYPE_NONE - added:
const CompletionInput.TYPE_OPTION_NAME - added:
const CompletionInput.TYPE_OPTION_VALUE - added:
constructor Suggestion(string $value) - added:
final class CompletionInput extends ArgvInput - added:
final class CompletionSuggestions - added:
method CompletionInput.__toString() - added:
method CompletionInput.bind(InputDefinition $definition): void - added:
method CompletionInput.getCompletionName(): ?string - added:
method CompletionInput.getCompletionType(): string - added:
method CompletionInput.getCompletionValue(): string - added:
method CompletionInput.mustSuggestArgumentValuesFor(string $argumentName): bool - added:
method CompletionInput.mustSuggestOptionValuesFor(string $optionName): bool - added:
method CompletionSuggestions.getOptionSuggestions(): array - added:
method CompletionSuggestions.getValueSuggestions(): array - added:
method CompletionSuggestions.suggestOption(InputOption $option): self - added:
method CompletionSuggestions.suggestOptions(array $options): self - added:
method CompletionSuggestions.suggestValue($value): self - added:
method CompletionSuggestions.suggestValues(array $values): self - added:
method Suggestion.__toString(): string - added:
method Suggestion.getValue(): string - added:
protected method CompletionInput.parseToken(string $token, bool $parseOptions): bool - added:
static method CompletionInput.fromString(string $inputStr, int $currentIndex): self - added:
static method CompletionInput.fromTokens(array $tokens, int $currentIndex): self
- added:
class BashCompletionOutput implements CompletionOutputInterface - added:
interface CompletionOutputInterface - added:
method BashCompletionOutput.write(CompletionSuggestions $suggestions, OutputInterface $output): void - added:
method CompletionOutputInterface.write(CompletionSuggestions $suggestions, OutputInterface $output): void
- changed:
constructor AddConsoleCommandPass(string $commandLoaderServiceId = …, string $commandTag = …) → constructor AddConsoleCommandPass(string $commandLoaderServiceId = …, string $commandTag = …, string $noPreloadTag = …, string $privateTagName = …)
- changed:
constructor ApplicationDescription(Application $application, string $namespace = …, bool $showHidden = …) → constructor ApplicationDescription(Application $application, ?string $namespace = …, bool $showHidden = …) - changed:
method Descriptor.describe(OutputInterface $output, $object, array $options = …) → method Descriptor.describe(OutputInterface $output, object $object, array $options = …) - changed:
method DescriptorInterface.describe(OutputInterface $output, $object, array $options = …) → method DescriptorInterface.describe(OutputInterface $output, object $object, array $options = …) - changed:
method MarkdownDescriptor.describe(OutputInterface $output, $object, array $options = …) → method MarkdownDescriptor.describe(OutputInterface $output, object $object, array $options = …) - changed:
method XmlDescriptor.getApplicationDocument(Application $application, string $namespace = …): \DOMDocument → method XmlDescriptor.getApplicationDocument(Application $application, ?string $namespace = …, bool $short = …): \DOMDocument - changed:
method XmlDescriptor.getCommandDocument(Command $command): \DOMDocument → method XmlDescriptor.getCommandDocument(Command $command, bool $short = …): \DOMDocument - changed:
protected method Descriptor.write($content, $decorated = …) → protected method Descriptor.write(string $content, bool $decorated = …) - changed:
protected method MarkdownDescriptor.write($content, $decorated = …) → protected method MarkdownDescriptor.write(string $content, bool $decorated = …)
- changed:
class ConsoleCommandEvent extends ConsoleEvent → final class ConsoleCommandEvent extends ConsoleEvent - changed:
class ConsoleTerminateEvent extends ConsoleEvent → final class ConsoleTerminateEvent extends ConsoleEvent - changed:
constructor ConsoleErrorEvent(InputInterface $input, OutputInterface $output, \Throwable $error, Command $command = …) → constructor ConsoleErrorEvent(InputInterface $input, OutputInterface $output, \Throwable $error, ?Command $command = …) - changed:
method ConsoleCommandEvent.commandShouldRun() → method ConsoleCommandEvent.commandShouldRun(): bool - changed:
method ConsoleCommandEvent.disableCommand() → method ConsoleCommandEvent.disableCommand(): bool - changed:
method ConsoleCommandEvent.enableCommand() → method ConsoleCommandEvent.enableCommand(): bool - changed:
method ConsoleTerminateEvent.getExitCode() → method ConsoleTerminateEvent.getExitCode(): int - changed:
method ConsoleTerminateEvent.setExitCode($exitCode) → method ConsoleTerminateEvent.setExitCode(int $exitCode): void - added:
constructor ConsoleSignalEvent(Command $command, InputInterface $input, OutputInterface $output, int $handlingSignal) - added:
final class ConsoleSignalEvent extends ConsoleEvent - added:
method ConsoleSignalEvent.getHandlingSignal(): int
- changed:
constructor ErrorListener(LoggerInterface $logger = …) → constructor ErrorListener(?LoggerInterface $logger = …)
- changed:
constructor CommandNotFoundException(string $message, array $alternatives = …, int $code = …, \Throwable $previous = …) → constructor CommandNotFoundException(string $message, array $alternatives = …, int $code = …, ?\Throwable $previous = …)
- changed:
constructor OutputFormatterStyle(string $foreground = …, string $background = …, array $options = …) → constructor OutputFormatterStyle(?string $foreground = …, ?string $background = …, array $options = …) - changed:
constructor OutputFormatterStyleStack(OutputFormatterStyleInterface $emptyStyle = …) → constructor OutputFormatterStyleStack(?OutputFormatterStyleInterface $emptyStyle = …) - changed:
method OutputFormatter.format($message) → method OutputFormatter.format(?string $message) - changed:
method OutputFormatter.formatAndWrap(string $message, int $width) → method OutputFormatter.formatAndWrap(?string $message, int $width) - changed:
method OutputFormatter.getStyle($name) → method OutputFormatter.getStyle(string $name) - changed:
method OutputFormatter.hasStyle($name) → method OutputFormatter.hasStyle(string $name) - changed:
method OutputFormatter.setDecorated($decorated) → method OutputFormatter.setDecorated(bool $decorated) - changed:
method OutputFormatter.setStyle($name, OutputFormatterStyleInterface $style) → method OutputFormatter.setStyle(string $name, OutputFormatterStyleInterface $style) - changed:
method OutputFormatterInterface.format($message) → method OutputFormatterInterface.format(?string $message) - changed:
method OutputFormatterInterface.getStyle($name) → method OutputFormatterInterface.getStyle(string $name) - changed:
method OutputFormatterInterface.hasStyle($name) → method OutputFormatterInterface.hasStyle(string $name) - changed:
method OutputFormatterInterface.setDecorated($decorated) → method OutputFormatterInterface.setDecorated(bool $decorated) - changed:
method OutputFormatterInterface.setStyle($name, OutputFormatterStyleInterface $style) → method OutputFormatterInterface.setStyle(string $name, OutputFormatterStyleInterface $style) - changed:
method OutputFormatterStyle.apply($text) → method OutputFormatterStyle.apply(string $text) - changed:
method OutputFormatterStyle.setBackground($color = …) → method OutputFormatterStyle.setBackground(?string $color = …) - changed:
method OutputFormatterStyle.setForeground($color = …) → method OutputFormatterStyle.setForeground(?string $color = …) - changed:
method OutputFormatterStyle.setOption($option) → method OutputFormatterStyle.setOption(string $option) - changed:
method OutputFormatterStyle.unsetOption($option) → method OutputFormatterStyle.unsetOption(string $option) - changed:
method OutputFormatterStyleInterface.apply($text) → method OutputFormatterStyleInterface.apply(string $text) - changed:
method OutputFormatterStyleInterface.setBackground($color = …) → method OutputFormatterStyleInterface.setBackground(?string $color = …) - changed:
method OutputFormatterStyleInterface.setForeground($color = …) → method OutputFormatterStyleInterface.setForeground(?string $color = …) - changed:
method OutputFormatterStyleInterface.setOption($option) → method OutputFormatterStyleInterface.setOption(string $option) - changed:
method OutputFormatterStyleInterface.unsetOption($option) → method OutputFormatterStyleInterface.unsetOption(string $option) - changed:
method OutputFormatterStyleStack.pop(OutputFormatterStyleInterface $style = …) → method OutputFormatterStyleStack.pop(?OutputFormatterStyleInterface $style = …) - changed:
method WrappableOutputFormatterInterface.formatAndWrap(string $message, int $width) → method WrappableOutputFormatterInterface.formatAndWrap(?string $message, int $width) - changed:
static method OutputFormatter.escape($text) → static method OutputFormatter.escape(string $text) - added:
final class NullOutputFormatter implements OutputFormatterInterface - added:
final class NullOutputFormatterStyle implements OutputFormatterStyleInterface - added:
method NullOutputFormatter.format(?string $message): ?string - added:
method NullOutputFormatter.getStyle(string $name): OutputFormatterStyleInterface - added:
method NullOutputFormatter.hasStyle(string $name): bool - added:
method NullOutputFormatter.isDecorated(): bool - added:
method NullOutputFormatter.setDecorated(bool $decorated): void - added:
method NullOutputFormatter.setStyle(string $name, OutputFormatterStyleInterface $style): void - added:
method NullOutputFormatterStyle.apply(string $text): string - added:
method NullOutputFormatterStyle.setBackground(?string $color = …): void - added:
method NullOutputFormatterStyle.setForeground(?string $color = …): void - added:
method NullOutputFormatterStyle.setOption(string $option): void - added:
method NullOutputFormatterStyle.setOptions(array $options): void - added:
method NullOutputFormatterStyle.unsetOption(string $option): void
- removed:
method TableStyle.getHorizontalBorderChar() - removed:
method TableStyle.getVerticalBorderChar() - removed:
method TableStyle.setCrossingChar($crossingChar) - removed:
method TableStyle.setHorizontalBorderChar($horizontalBorderChar) - removed:
method TableStyle.setVerticalBorderChar($verticalBorderChar) - changed:
constructor Dumper(OutputInterface $output, CliDumper $dumper = …, ClonerInterface $cloner = …) → constructor Dumper(OutputInterface $output, ?CliDumper $dumper = …, ?ClonerInterface $cloner = …) - changed:
constructor ProgressIndicator(OutputInterface $output, string $format = …, int $indicatorChangeInterval = …, array $indicatorValues = …) → constructor ProgressIndicator(OutputInterface $output, ?string $format = …, int $indicatorChangeInterval = …, ?array $indicatorValues = …) - changed:
constructor TableRows(callable $generator) → constructor TableRows(\Closure $generator) - changed:
method DebugFormatterHelper.progress($id, $buffer, $error = …, $prefix = …, $errorPrefix = …) → method DebugFormatterHelper.progress(string $id, string $buffer, bool $error = …, string $prefix = …, string $errorPrefix = …) - changed:
method DebugFormatterHelper.start($id, $message, $prefix = …) → method DebugFormatterHelper.start(string $id, string $message, string $prefix = …) - changed:
method DebugFormatterHelper.stop($id, $message, $successful, $prefix = …) → method DebugFormatterHelper.stop(string $id, string $message, bool $successful, string $prefix = …) - changed:
method DescriptorHelper.describe(OutputInterface $output, $object, array $options = …) → method DescriptorHelper.describe(OutputInterface $output, ?object $object, array $options = …) - changed:
method DescriptorHelper.register($format, DescriptorInterface $descriptor) → method DescriptorHelper.register(string $format, DescriptorInterface $descriptor) - changed:
method FormatterHelper.formatBlock($messages, $style, $large = …) → method FormatterHelper.formatBlock($messages, string $style, bool $large = …) - changed:
method FormatterHelper.formatSection($section, $message, $style = …) → method FormatterHelper.formatSection(string $section, string $message, string $style = …) - changed:
method FormatterHelper.truncate($message, $length, $suffix = …) → method FormatterHelper.truncate(string $message, int $length, string $suffix = …) - changed:
method Helper.setHelperSet(HelperSet $helperSet = …) → method Helper.setHelperSet(?HelperSet $helperSet = …) - changed:
method HelperInterface.setHelperSet(HelperSet $helperSet = …) → method HelperInterface.setHelperSet(?HelperSet $helperSet = …) - changed:
method HelperSet.get($name) → method HelperSet.get(string $name) - changed:
method HelperSet.has($name) → method HelperSet.has(string $name) - changed:
method HelperSet.set(HelperInterface $helper, $alias = …) → method HelperSet.set(HelperInterface $helper, ?string $alias = …) - changed:
method HelperSet.setCommand(Command $command = …) → method HelperSet.setCommand(?Command $command = …) - changed:
method ProcessHelper.getName() → method ProcessHelper.getName(): string - changed:
method ProcessHelper.mustRun(OutputInterface $output, $cmd, $error = …, callable $callback = …) → method ProcessHelper.mustRun(OutputInterface $output, $cmd, ?string $error = …, ?callable $callback = …): Process - changed:
method ProcessHelper.run(OutputInterface $output, $cmd, $error = …, callable $callback = …, $verbosity = …) → method ProcessHelper.run(OutputInterface $output, $cmd, ?string $error = …, ?callable $callback = …, int $verbosity = …): Process - changed:
method ProcessHelper.wrapCallback(OutputInterface $output, Process $process, callable $callback = …) → method ProcessHelper.wrapCallback(OutputInterface $output, Process $process, ?callable $callback = …): callable - changed:
method ProgressBar.getBarOffset(): int → method ProgressBar.getBarOffset(): float - changed:
method ProgressBar.iterate(iterable $iterable, int $max = …): iterable → method ProgressBar.iterate(iterable $iterable, ?int $max = …): iterable - changed:
method ProgressBar.start(int $max = …) → method ProgressBar.start(?int $max = …) - changed:
method ProgressIndicator.finish($message) → method ProgressIndicator.finish(string $message) - changed:
method ProgressIndicator.setMessage($message) → method ProgressIndicator.setMessage(?string $message) - changed:
method ProgressIndicator.start($message) → method ProgressIndicator.start(string $message) - changed:
method Table.getColumnStyle($columnIndex) → method Table.getColumnStyle(int $columnIndex) - changed:
method Table.setColumnStyle($columnIndex, $name) → method Table.setColumnStyle(int $columnIndex, $name) - changed:
method Table.setColumnWidth($columnIndex, $width) → method Table.setColumnWidth(int $columnIndex, int $width) - changed:
method TableStyle.setBorderFormat($borderFormat) → method TableStyle.setBorderFormat(string $borderFormat) - changed:
method TableStyle.setCellHeaderFormat($cellHeaderFormat) → method TableStyle.setCellHeaderFormat(string $cellHeaderFormat) - changed:
method TableStyle.setCellRowContentFormat($cellRowContentFormat) → method TableStyle.setCellRowContentFormat(string $cellRowContentFormat) - changed:
method TableStyle.setCellRowFormat($cellRowFormat) → method TableStyle.setCellRowFormat(string $cellRowFormat) - changed:
method TableStyle.setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, string $topLeftBottom = …, string $topMidBottom = …, string $topRightBottom = …): self → method TableStyle.setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, ?string $topLeftBottom = …, ?string $topMidBottom = …, ?string $topRightBottom = …): self - changed:
method TableStyle.setHorizontalBorderChars(string $outside, string $inside = …): self → method TableStyle.setHorizontalBorderChars(string $outside, ?string $inside = …): self - changed:
method TableStyle.setPadType($padType) → method TableStyle.setPadType(int $padType) - changed:
method TableStyle.setPaddingChar($paddingChar) → method TableStyle.setPaddingChar(string $paddingChar) - changed:
method TableStyle.setVerticalBorderChars(string $outside, string $inside = …): self → method TableStyle.setVerticalBorderChars(string $outside, ?string $inside = …): self - changed:
protected method QuestionHelper.formatChoiceQuestionChoices(ChoiceQuestion $question, $tag) → protected method QuestionHelper.formatChoiceQuestionChoices(ChoiceQuestion $question, string $tag) - changed:
static method Helper.formatMemory($memory) → static method Helper.formatMemory(int $memory) - changed:
static method Helper.removeDecoration(OutputFormatterInterface $formatter, $string) → static method Helper.removeDecoration(OutputFormatterInterface $formatter, ?string $string) - changed:
static method Helper.strlen($string) → static method Helper.strlen(?string $string) - changed:
static method Helper.strlenWithoutDecoration(OutputFormatterInterface $formatter, $string) → static method Helper.strlenWithoutDecoration(OutputFormatterInterface $formatter, ?string $string) - changed:
static method Helper.substr($string, $from, $length = …) → static method Helper.substr(?string $string, int $from, ?int $length = …) - changed:
static method ProgressIndicator.getFormatDefinition($name) → static method ProgressIndicator.getFormatDefinition(string $name) - changed:
static method ProgressIndicator.getPlaceholderFormatterDefinition($name) → static method ProgressIndicator.getPlaceholderFormatterDefinition(string $name) - changed:
static method ProgressIndicator.setPlaceholderFormatterDefinition($name, $callable) → static method ProgressIndicator.setPlaceholderFormatterDefinition(string $name, callable $callable) - changed:
static method Table.getStyleDefinition($name) → static method Table.getStyleDefinition(string $name) - changed:
static method Table.setStyleDefinition($name, TableStyle $style) → static method Table.setStyleDefinition(string $name, TableStyle $style) - added:
class TableCellStyle - added:
const ProgressBar.FORMAT_DEBUG - added:
const ProgressBar.FORMAT_NORMAL - added:
const ProgressBar.FORMAT_VERBOSE - added:
const ProgressBar.FORMAT_VERY_VERBOSE - added:
const TableCellStyle.DEFAULT_ALIGN - added:
constructor TableCellStyle(array $options = …) - added:
method DescriptorHelper.getFormats(): array - added:
method ProgressBar.getEstimated(): float - added:
method ProgressBar.getRemaining(): float - added:
method TableCell.getStyle(): ?TableCellStyle - added:
method TableCellStyle.getCellFormat(): ?string - added:
method TableCellStyle.getOptions(): array - added:
method TableCellStyle.getPadByAlign() - added:
method TableCellStyle.getTagOptions() - added:
static method Helper.length(?string $string): int - added:
static method Helper.width(?string $string): int
- changed:
constructor ArgvInput(array $argv = …, InputDefinition $definition = …) → constructor ArgvInput(?array $argv = …, ?InputDefinition $definition = …) - changed:
constructor ArrayInput(array $parameters, InputDefinition $definition = …) → constructor ArrayInput(array $parameters, ?InputDefinition $definition = …) - changed:
constructor Input(InputDefinition $definition = …) → constructor Input(?InputDefinition $definition = …) - changed:
constructor InputArgument(string $name, int $mode = …, string $description = …, $default = …) → constructor InputArgument(string $name, ?int $mode = …, string $description = …, $default = …) - changed:
constructor InputOption(string $name, $shortcut = …, int $mode = …, string $description = …, $default = …) → constructor InputOption(string $name, $shortcut = …, ?int $mode = …, string $description = …, $default = …) - changed:
method ArgvInput.getParameterOption($values, $default = …, $onlyParams = …) → method ArgvInput.getParameterOption($values, $default = …, bool $onlyParams = …) - changed:
method ArgvInput.hasParameterOption($values, $onlyParams = …) → method ArgvInput.hasParameterOption($values, bool $onlyParams = …) - changed:
method ArrayInput.getParameterOption($values, $default = …, $onlyParams = …) → method ArrayInput.getParameterOption($values, $default = …, bool $onlyParams = …) - changed:
method ArrayInput.hasParameterOption($values, $onlyParams = …) → method ArrayInput.hasParameterOption($values, bool $onlyParams = …) - changed:
method Input.escapeToken($token) → method Input.escapeToken(string $token) - changed:
method Input.getArgument($name) → method Input.getArgument(string $name) - changed:
method Input.getOption($name) → method Input.getOption(string $name) - changed:
method Input.hasArgument($name) → method Input.hasArgument(string $name) - changed:
method Input.hasOption($name) → method Input.hasOption(string $name) - changed:
method Input.setArgument($name, $value) → method Input.setArgument(string $name, $value) - changed:
method Input.setInteractive($interactive) → method Input.setInteractive(bool $interactive) - changed:
method Input.setOption($name, $value) → method Input.setOption(string $name, $value) - changed:
method InputDefinition.addArguments($arguments = …) → method InputDefinition.addArguments(?array $arguments = …) - changed:
method InputDefinition.addOptions($options = …) → method InputDefinition.addOptions(array $options = …) - changed:
method InputDefinition.getOption($name) → method InputDefinition.getOption(string $name) - changed:
method InputDefinition.getOptionForShortcut($shortcut) → method InputDefinition.getOptionForShortcut(string $shortcut) - changed:
method InputDefinition.getSynopsis($short = …) → method InputDefinition.getSynopsis(bool $short = …) - changed:
method InputDefinition.hasOption($name) → method InputDefinition.hasOption(string $name) - changed:
method InputDefinition.hasShortcut($name) → method InputDefinition.hasShortcut(string $name) - changed:
method InputDefinition.setArguments($arguments = …) → method InputDefinition.setArguments(array $arguments = …) - changed:
method InputDefinition.setOptions($options = …) → method InputDefinition.setOptions(array $options = …) - changed:
method InputInterface.getArgument($name) → method InputInterface.getArgument(string $name) - changed:
method InputInterface.getOption($name) → method InputInterface.getOption(string $name) - changed:
method InputInterface.getParameterOption($values, $default = …, $onlyParams = …) → method InputInterface.getParameterOption($values, $default = …, bool $onlyParams = …) - changed:
method InputInterface.hasArgument($name) → method InputInterface.hasArgument(string $name) - changed:
method InputInterface.hasOption($name) → method InputInterface.hasOption(string $name) - changed:
method InputInterface.hasParameterOption($values, $onlyParams = …) → method InputInterface.hasParameterOption($values, bool $onlyParams = …) - changed:
method InputInterface.setArgument($name, $value) → method InputInterface.setArgument(string $name, $value) - changed:
method InputInterface.setInteractive($interactive) → method InputInterface.setInteractive(bool $interactive) - changed:
method InputInterface.setOption($name, $value) → method InputInterface.setOption(string $name, $value) - added:
const InputOption.VALUE_NEGATABLE - added:
method InputDefinition.hasNegation(string $name): bool - added:
method InputDefinition.negationToName(string $negation): string - added:
method InputOption.isNegatable(): bool - added:
protected method ArgvInput.parseToken(string $token, bool $parseOptions): bool
- changed:
constructor ConsoleOutput(int $verbosity = …, bool $decorated = …, OutputFormatterInterface $formatter = …) → constructor ConsoleOutput(int $verbosity = …, ?bool $decorated = …, ?OutputFormatterInterface $formatter = …) - changed:
constructor Output(?int $verbosity = …, bool $decorated = …, OutputFormatterInterface $formatter = …) → constructor Output(?int $verbosity = …, bool $decorated = …, ?OutputFormatterInterface $formatter = …) - changed:
constructor StreamOutput($stream, int $verbosity = …, bool $decorated = …, OutputFormatterInterface $formatter = …) → constructor StreamOutput($stream, int $verbosity = …, ?bool $decorated = …, ?OutputFormatterInterface $formatter = …) - changed:
constructor TrimmedBufferOutput(int $maxLength, ?int $verbosity = …, bool $decorated = …, OutputFormatterInterface $formatter = …) → constructor TrimmedBufferOutput(int $maxLength, ?int $verbosity = …, bool $decorated = …, ?OutputFormatterInterface $formatter = …) - changed:
method ConsoleOutput.setDecorated($decorated) → method ConsoleOutput.setDecorated(bool $decorated) - changed:
method ConsoleOutput.setVerbosity($level) → method ConsoleOutput.setVerbosity(int $level) - changed:
method ConsoleSectionOutput.clear(int $lines = …) → method ConsoleSectionOutput.clear(?int $lines = …) - changed:
method NullOutput.setDecorated($decorated) → method NullOutput.setDecorated(bool $decorated) - changed:
method NullOutput.setVerbosity($level) → method NullOutput.setVerbosity(int $level) - changed:
method NullOutput.write($messages, $newline = …, $options = …) → method NullOutput.write($messages, bool $newline = …, int $options = …) - changed:
method NullOutput.writeln($messages, $options = …) → method NullOutput.writeln($messages, int $options = …) - changed:
method Output.setDecorated($decorated) → method Output.setDecorated(bool $decorated) - changed:
method Output.setVerbosity($level) → method Output.setVerbosity(int $level) - changed:
method Output.write($messages, $newline = …, $options = …) → method Output.write($messages, bool $newline = …, int $options = …) - changed:
method Output.writeln($messages, $options = …) → method Output.writeln($messages, int $options = …) - changed:
method OutputInterface.setDecorated($decorated) → method OutputInterface.setDecorated(bool $decorated) - changed:
method OutputInterface.setVerbosity($level) → method OutputInterface.setVerbosity(int $level) - changed:
method OutputInterface.write($messages, $newline = …, $options = …) → method OutputInterface.write($messages, bool $newline = …, int $options = …) - changed:
method OutputInterface.writeln($messages, $options = …) → method OutputInterface.writeln($messages, int $options = …) - changed:
protected method BufferedOutput.doWrite($message, $newline) → protected method BufferedOutput.doWrite(string $message, bool $newline) - changed:
protected method ConsoleSectionOutput.doWrite($message, $newline) → protected method ConsoleSectionOutput.doWrite(string $message, bool $newline) - changed:
protected method Output.doWrite($message, $newline) → protected method Output.doWrite(string $message, bool $newline) - changed:
protected method StreamOutput.doWrite($message, $newline) → protected method StreamOutput.doWrite(string $message, bool $newline) - changed:
protected method TrimmedBufferOutput.doWrite($message, $newline) → protected method TrimmedBufferOutput.doWrite(string $message, bool $newline) - added:
method ConsoleOutputInterface.section(): ConsoleSectionOutput
- changed:
method ChoiceQuestion.setErrorMessage($errorMessage) → method ChoiceQuestion.setErrorMessage(string $errorMessage) - changed:
method ChoiceQuestion.setMultiselect($multiselect) → method ChoiceQuestion.setMultiselect(bool $multiselect) - changed:
method ChoiceQuestion.setPrompt($prompt) → method ChoiceQuestion.setPrompt(string $prompt) - changed:
method Question.setAutocompleterCallback(callable $callback = …): self → method Question.setAutocompleterCallback(?callable $callback = …): self - changed:
method Question.setAutocompleterValues($values) → method Question.setAutocompleterValues(?iterable $values) - changed:
method Question.setHidden($hidden) → method Question.setHidden(bool $hidden) - changed:
method Question.setHiddenFallback($fallback) → method Question.setHiddenFallback(bool $fallback) - changed:
method Question.setMaxAttempts($attempts) → method Question.setMaxAttempts(?int $attempts) - changed:
method Question.setValidator(callable $validator = …) → method Question.setValidator(?callable $validator = …) - changed:
protected method Question.isAssoc($array) → protected method Question.isAssoc(array $array) - added:
method Question.isMultiline(): bool - added:
method Question.setMultiline(bool $multiline): self
- added:
constructor SignalRegistry() - added:
final class SignalRegistry - added:
method SignalRegistry.handle(int $signal): void - added:
method SignalRegistry.register(int $signal, callable $signalHandler): void - added:
static method SignalRegistry.isSupported(): bool
- changed:
method OutputStyle.createProgressBar($max = …) → method OutputStyle.createProgressBar(int $max = …) - changed:
method OutputStyle.newLine($count = …) → method OutputStyle.newLine(int $count = …) - changed:
method OutputStyle.setDecorated($decorated) → method OutputStyle.setDecorated(bool $decorated) - changed:
method OutputStyle.setVerbosity($level) → method OutputStyle.setVerbosity(int $level) - changed:
method OutputStyle.write($messages, $newline = …, $type = …) → method OutputStyle.write($messages, bool $newline = …, int $type = …) - changed:
method OutputStyle.writeln($messages, $type = …) → method OutputStyle.writeln($messages, int $type = …) - changed:
method StyleInterface.ask($question, $default = …, $validator = …) → method StyleInterface.ask(string $question, ?string $default = …, ?callable $validator = …) - changed:
method StyleInterface.askHidden($question, $validator = …) → method StyleInterface.askHidden(string $question, ?callable $validator = …) - changed:
method StyleInterface.choice($question, array $choices, $default = …) → method StyleInterface.choice(string $question, array $choices, $default = …) - changed:
method StyleInterface.confirm($question, $default = …) → method StyleInterface.confirm(string $question, bool $default = …) - changed:
method StyleInterface.newLine($count = …) → method StyleInterface.newLine(int $count = …) - changed:
method StyleInterface.progressAdvance($step = …) → method StyleInterface.progressAdvance(int $step = …) - changed:
method StyleInterface.progressStart($max = …) → method StyleInterface.progressStart(int $max = …) - changed:
method StyleInterface.section($message) → method StyleInterface.section(string $message) - changed:
method StyleInterface.title($message) → method StyleInterface.title(string $message) - changed:
method SymfonyStyle.ask($question, $default = …, $validator = …) → method SymfonyStyle.ask(string $question, ?string $default = …, ?callable $validator = …) - changed:
method SymfonyStyle.askHidden($question, $validator = …) → method SymfonyStyle.askHidden(string $question, ?callable $validator = …) - changed:
method SymfonyStyle.block($messages, $type = …, $style = …, $prefix = …, $padding = …, $escape = …) → method SymfonyStyle.block($messages, ?string $type = …, ?string $style = …, string $prefix = …, bool $padding = …, bool $escape = …) - changed:
method SymfonyStyle.choice($question, array $choices, $default = …) → method SymfonyStyle.choice(string $question, array $choices, $default = …) - changed:
method SymfonyStyle.confirm($question, $default = …) → method SymfonyStyle.confirm(string $question, bool $default = …) - changed:
method SymfonyStyle.createProgressBar($max = …) → method SymfonyStyle.createProgressBar(int $max = …) - changed:
method SymfonyStyle.newLine($count = …) → method SymfonyStyle.newLine(int $count = …) - changed:
method SymfonyStyle.progressAdvance($step = …) → method SymfonyStyle.progressAdvance(int $step = …) - changed:
method SymfonyStyle.progressStart($max = …) → method SymfonyStyle.progressStart(int $max = …) - changed:
method SymfonyStyle.section($message) → method SymfonyStyle.section(string $message) - changed:
method SymfonyStyle.title($message) → method SymfonyStyle.title(string $message) - changed:
method SymfonyStyle.write($messages, $newline = …, $type = …) → method SymfonyStyle.write($messages, bool $newline = …, int $type = …) - changed:
method SymfonyStyle.writeln($messages, $type = …) → method SymfonyStyle.writeln($messages, int $type = …) - added:
method SymfonyStyle.createTable(): Table - added:
method SymfonyStyle.info($message) - added:
method SymfonyStyle.progressIterate(iterable $iterable, ?int $max = …): iterable
- changed:
method ApplicationTester.run(array $input, $options = …) → method ApplicationTester.run(array $input, array $options = …) - changed:
method TesterTrait.getDisplay($normalize = …) → method TesterTrait.getDisplay(bool $normalize = …) - changed:
method TesterTrait.getErrorOutput($normalize = …) → method TesterTrait.getErrorOutput(bool $normalize = …) - added:
class CommandCompletionTester - added:
constructor CommandCompletionTester(Command $command) - added:
method CommandCompletionTester.complete(array $input): array - added:
method TesterTrait.assertCommandIsSuccessful(string $message = …): void
- added:
final class CommandIsSuccessful extends Constraint - added:
method CommandIsSuccessful.toString(): string - added:
protected method CommandIsSuccessful.additionalFailureDescription($other): string - added:
protected method CommandIsSuccessful.failureDescription($other): string - added:
protected method CommandIsSuccessful.matches($other): bool