Skip to content

[Monorepo] Require PHP 8.4 and PHPUnit 12#1727

Closed
alexndlm wants to merge 15 commits into7.xfrom
feature/monorepo-require-php8.4
Closed

[Monorepo] Require PHP 8.4 and PHPUnit 12#1727
alexndlm wants to merge 15 commits into7.xfrom
feature/monorepo-require-php8.4

Conversation

@alexndlm
Copy link
Contributor

Q A
Bug fix? no
New feature? yes
BC breaks? yes
Deprecations? no
Tests pass? yes
Fixed tickets

@eonx-space-to-github-reviews
Copy link

# Conflicts:
#	packages/EasyActivity/src/Common/Serializer/SymfonyActivitySubjectDataSerializer.php
#	packages/EasyApiPlatform/composer.json
#	packages/EasyApiPlatform/src/Common/Filter/AdvancedSearchFilter.php
#	packages/EasyApiToken/src/Common/Factory/ApiTokenDecoderFactory.php
#	packages/EasyDecision/composer.json
#	packages/EasyErrorHandler/composer.json
#	packages/EasyEventDispatcher/composer.json
#	packages/EasyHttpClient/bundle/CompilerPass/AbstractEasyHttpClientCompilerPass.php
#	packages/EasyHttpClient/composer.json
#	packages/EasyLogging/composer.json
#	packages/EasyRandom/composer.json
#	packages/EasyRandom/src/Generator/RandomStringGenerator.php
#	packages/EasyRequestId/composer.json
#	packages/EasySecurity/composer.json
#	packages/EasyServerless/composer.json
#	packages/EasyServerless/laravel/SqsHandlers/SqsHandler.php
#	packages/EasySwoole/composer.json
#	packages/EasyTemplatingBlock/composer.json
#	packages/EasyTest/composer.json
#	packages/EasyUtils/src/Common/Helper/CollectorHelper.php
#	packages/EasyUtils/tests/Unit/AbstractUnitTestCase.php
#	packages/EasyWebhook/composer.json
#	quality/composer.lock
#	quality/phpstan.latest.neon
#	quality/rector.php
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request upgrades the monorepo to require PHP 8.4, introducing breaking changes. The PR adopts PHP 8.4 features including typed constants, removal of redundant parentheses around new expressions, the \array_any() function, and migrates from PHPDoc to PHP attributes for deprecations.

Changes:

  • Upgraded PHP version requirement from ^8.2 to ^8.4 across all packages
  • Added typed constant declarations throughout the codebase
  • Replaced foreach loops with \array_any() for cleaner condition checking
  • Removed unnecessary parentheses around new expressions
  • Migrated @deprecated PHPDoc to #[Deprecated] attributes
  • Updated Rector, PHPStan, and ECS configurations for PHP 8.4
  • Added Vote parameter to Symfony voter methods for compatibility
  • Updated GitHub workflows to use PHP 8.4
  • Updated dependency versions (symfony/var-exporter to 8.0.0, monorepo-builder to 12.4.5)

Reviewed changes

Copilot reviewed 260 out of 263 changed files in this pull request and generated no comments.

Show a summary per file
File Description
composer.json Updated PHP requirement to ^8.4 and dependency versions
quality/*.php Added typed constants and updated test files with PHP 8.4 syntax
quality/rector.php Configured for PHP 8.4 features with new rule skips
quality/phpstan.neon Removed obsolete PHPStan ignores for bc* functions
quality/ecs.php Updated code style configuration
packages/*/composer.json Updated PHP requirement to ^8.4 in all packages
packages/*/src/** Applied typed constants, \array_any(), and removed new parentheses
packages/*/tests/** Updated test code with PHP 8.4 syntax
packages/EasySecurity/src/SymfonySecurity/Voter/* Added Vote parameter for Symfony compatibility
.github/workflows/*.yml Updated CI/CD to use PHP 8.4

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@alexndlm alexndlm changed the title [Monorepo] Require PHP 8.4 [Monorepo] Require PHP 8.4 and PHPUnit 13 Feb 6, 2026
@alexndlm alexndlm changed the title [Monorepo] Require PHP 8.4 and PHPUnit 13 [Monorepo] Require PHP 8.4 and PHPUnit 12 Feb 6, 2026
@alexndlm alexndlm marked this pull request as draft February 6, 2026 20:42
# Conflicts:
#	.github/workflows/split_packages.yml
#	.github/workflows/split_tests.yml
#	composer.json
#	packages/EasyActivity/composer.json
#	packages/EasyApiPlatform/composer.json
#	packages/EasyApiToken/composer.json
#	packages/EasyAsync/composer.json
#	packages/EasyBankFiles/composer.json
#	packages/EasyBatch/composer.json
#	packages/EasyBugsnag/composer.json
#	packages/EasyDecision/composer.json
#	packages/EasyDoctrine/composer.json
#	packages/EasyEncryption/composer.json
#	packages/EasyErrorHandler/composer.json
#	packages/EasyEventDispatcher/composer.json
#	packages/EasyHttpClient/composer.json
#	packages/EasyLock/composer.json
#	packages/EasyLogging/composer.json
#	packages/EasyNotification/composer.json
#	packages/EasyPagination/composer.json
#	packages/EasyPipeline/composer.json
#	packages/EasyRandom/composer.json
#	packages/EasyRepository/composer.json
#	packages/EasyRequestId/composer.json
#	packages/EasySchedule/composer.json
#	packages/EasySecurity/composer.json
#	packages/EasyServerless/composer.json
#	packages/EasyServerless/src/Aws/Console/Formatter/MonologJsonOutputMessageFormatter.php
#	packages/EasySwoole/composer.json
#	packages/EasyTemplatingBlock/composer.json
#	packages/EasyTest/composer.json
#	packages/EasyUtils/composer.json
#	packages/EasyWebhook/composer.json
#	quality/composer.lock
#	quality/rector.php
@alexndlm
Copy link
Contributor Author

Already done in other PRs

@alexndlm alexndlm closed this Mar 11, 2026
@alexndlm alexndlm deleted the feature/monorepo-require-php8.4 branch March 11, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants