Upgrading phpro/grumphp 0.22 to 1
Breakingv0.22.0 → v1.16.0Breaking2Platform2Deprecated1New22Changed29Fixed25Other30
BreakingUpgrade verdict
2 breaking changes and 2 platform requirement changes.
In plain terms
- 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.
Must act 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.
What you must change
Breaking2
Removes the --non-zero-exit-on-violation option for PhpMnd.
PhpMnd--non-zero-exit-on-violationUpgrades 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.
Deprecations to plan for
Deprecated1
Deprecates whitelist_patterns with a null value.
whitelist_patternsAPI changes
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