Skip to content

Upgrading phpro/grumphp 0.22 to 1

Breakingv0.22.0 → v1.16.0Breaking2Platform2Deprecated1New22Changed29Fixed25Other30

BreakingUpgrade verdict

2 breaking changes and 2 platform requirement changes.

  • The PhpMnd task no longer accepts the --non-zero-exit-on-violation option.
  • Bundled tools are upgraded and Symfony 6 compatibility introduces breaking changes.
  • GrumPHP now requires PHP 8.0 or newer and works on PHP 8.2.
  • The package can again be installed on projects running PHP 7.4.
5 items need code or config changes

PHP requirement changed in v1.14.0: ^7.3 → ^8.0.

Adds laravel/serializable-closure ^1.1, ondram/ci-detector ^4.0.

Drops opis/closure.

Breaking2
Removes the --non-zero-exit-on-violation option for PhpMnd.
PhpMnd--non-zero-exit-on-violation
Upgrades tools and includes Symfony 6 breaking changes.
Platform2
Adds support for PHP 8.2 and drops support for PHP 7.4.
Re-adds support for PHP 7.4.
Deprecated1
Deprecates whitelist_patterns with a null value.
whitelist_patterns

Generated by DepDelta from published PHP source. Not mixed with prose notes.

  • removed: method FilesCollection.serialize(): string
  • removed: method FilesCollection.unserialize($serialized): void
  • changed: class FilesCollection extends ArrayCollection implements \Serializable → class FilesCollection extends ArrayCollection
  • changed: method FilesCollection.filter(Closure $closure): self → method FilesCollection.filter(Closure $p): self
  • added: method FilesCollection.__serialize(): array
  • added: method FilesCollection.__unserialize(array $data): void
  • changed: method GrumPHPExtension.getAlias() → method GrumPHPExtension.getAlias(): string
  • added: constructor RegisterListenersPass(SymfonyRegisterListenersPass $pass)
  • added: final class RegisterListenersPass implements CompilerPassInterface
  • added: method RegisterListenersPass.process(ContainerBuilder $container): void
  • added: static method RegisterListenersPass.create(): self
  • changed: method SymfonyEventDispatcher.dispatch(Event $event, string $eventName = …): void → method SymfonyEventDispatcher.dispatch(Event $event, string $name = …): void
  • removed: method ConsoleIO.serialize()
  • removed: method ConsoleIO.unserialize($serialized)
  • changed: class ConsoleIO implements IOInterface, \Serializable → class ConsoleIO implements IOInterface
  • added: method ConsoleIO.__serialize(): array
  • added: method ConsoleIO.__unserialize(array $data): void
  • changed: method FixableTaskResult.withAppendedMessage(string $additionalMessage): TaskResultInterface → method FixableTaskResult.withAppendedMessage(string $message): TaskResultInterface
  • changed: method TaskResult.withAppendedMessage(string $additionalMessage): TaskResultInterface → method TaskResult.withAppendedMessage(string $message): TaskResultInterface
  • added: class CiDetector
  • added: constructor CiDetector(RealCiDetector $ciDetector)
  • added: method CiDetector.isCiDetected(): bool
  • changed: constructor TaskResultsReporter(IOInterface $IO, MemoizedTaskResultMap $taskResultMap) → constructor TaskResultsReporter(IOInterface $IO, MemoizedTaskResultMap $taskResultMap, CiDetector $ciDetector)
  • changed: method TaskHandlerMiddlewareInterface.handle(TaskInterface $task, TaskRunnerContext $runnercontext, callable $next): Promise → method TaskHandlerMiddlewareInterface.handle(TaskInterface $task, TaskRunnerContext $runnerContext, callable $next): Promise
  • added: class PhpArkitect extends AbstractExternalTask
  • added: class Rector extends AbstractExternalTask
  • added: class SecurityCheckerEnlightn extends AbstractExternalTask
  • added: class SecurityCheckerLocal extends AbstractExternalTask
  • added: class SecurityCheckerRoave extends AbstractExternalTask
  • added: class SecurityCheckerSymfony extends AbstractExternalTask
  • added: class Stylelint extends AbstractExternalTask
  • added: constructor SecurityCheckerRoave(ProcessBuilder $processBuilder, ProcessFormatterInterface $formatter, Filesystem $filesystem)
  • added: method PhpArkitect.canRunInContext(ContextInterface $context): bool
  • added: method PhpArkitect.run(ContextInterface $context): TaskResultInterface
  • added: method Rector.canRunInContext(ContextInterface $context): bool
  • added: method Rector.run(ContextInterface $context): TaskResultInterface
  • added: method SecurityCheckerEnlightn.canRunInContext(ContextInterface $context): bool
  • added: method SecurityCheckerEnlightn.run(ContextInterface $context): TaskResultInterface
  • added: method SecurityCheckerLocal.canRunInContext(ContextInterface $context): bool
  • added: method SecurityCheckerLocal.run(ContextInterface $context): TaskResultInterface
  • added: method SecurityCheckerRoave.canRunInContext(ContextInterface $context): bool
  • added: method SecurityCheckerRoave.run(ContextInterface $context): TaskResultInterface
  • added: method SecurityCheckerSymfony.canRunInContext(ContextInterface $context): bool
  • added: method SecurityCheckerSymfony.run(ContextInterface $context): TaskResultInterface
  • added: method Stylelint.canRunInContext(ContextInterface $context): bool
  • added: method Stylelint.run(ContextInterface $context): TaskResultInterface
  • added: static method PhpArkitect.getConfigurableOptions(): OptionsResolver
  • added: static method Rector.getConfigurableOptions(): OptionsResolver
  • added: static method SecurityCheckerEnlightn.getConfigurableOptions(): OptionsResolver
  • added: static method SecurityCheckerLocal.getConfigurableOptions(): OptionsResolver
  • added: static method SecurityCheckerRoave.getConfigurableOptions(): OptionsResolver
  • added: static method SecurityCheckerSymfony.getConfigurableOptions(): OptionsResolver
  • added: static method Stylelint.getConfigurableOptions(): OptionsResolver
  • added: method Metadata.isEnabled(): bool