Skip to content

Cap removed-API rules at upper version bound - #532

Merged
TomasVotruba merged 1 commit into
mainfrom
cap-removed-doctrine-api-rules
Oct 11, 2026
Merged

TomasVotruba merged 1 commit into
mainfrom
cap-removed-doctrine-api-rules

Conversation

@TomasVotruba

Copy link
Copy Markdown
Member

Several version-bound rules migrate off a Doctrine API that was hard-removed in a known major. Past removal + 2 majors the legacy source can no longer exist in runnable code, so an upper bound stops them running as dead weight.

Adds an upper bound to each, using removal major + 2:

Rule constraint source API removed in
ReplaceFetchAllMethodCallRector doctrine/dbal >=2.11 <5.0 Connection/Statement fetchAll* removed dbal 3.0
ExtractArrayArgOnQueryBuilderSelectRector doctrine/dbal >=2.11 <6.0 array arg to select()/groupBy() removed dbal 4.0
QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector doctrine/dbal >=3.1 <6.0 QueryBuilder::execute() removed dbal 4.0
MigrateQueryBuilderResetQueryPartRector doctrine/dbal >=3.8 <6.0 resetQueryPart(s)() removed dbal 4.0
PlatformGetNameToInstanceofRector doctrine/dbal >=3.2 <6.0 AbstractPlatform::getName() removed dbal 4.0
ChangeCompositeExpressionAddMultipleWithWithRector doctrine/dbal >=4.0 <6.0 CompositeExpression::add()/addMultiple() removed dbal 4.0
ExecuteQueryParamsToBindValueRector doctrine/dbal >=4.0 <6.0 $params arg to Statement::executeQuery() removed dbal 4.0
AddArrayResultColumnNamesRector doctrine/dbal >=4.2 <6.0 single-arg ArrayResult constructor removed dbal 4.2
IterateToToIterableRector doctrine/orm >=2.8 <5.0 Query::iterate()/IterableResult removed orm 3.0
ReplaceLifecycleEventArgsByDedicatedEventArgsRector doctrine/orm >=2.14 <5.0 ORM\Event\LifecycleEventArgs removed orm 3.0
SetParametersArrayToCollectionRector doctrine/orm >=3.0 <5.0 array arg to QueryBuilder::setParameters() removed orm 3.0
CastDoctrineExprToStringRector doctrine/orm >=3.0 <5.0 uncast Expr\Func to Expr::like()/notLike() removed orm 3.0

Removal majors verified against the doctrine/dbal and doctrine/orm UPGRADE.md files and the installed 4.x/3.x signatures.

Installed dbal 4.x and orm 3.x fall inside every capped range, so the rules stay active under test and no test composer.json stub is needed; the caps only prune the upcoming dbal 5/6 and orm 4/5 majors where these APIs are already gone.

@TomasVotruba
TomasVotruba merged commit 805fc80 into main Oct 11, 2026
8 checks passed
@TomasVotruba
TomasVotruba deleted the cap-removed-doctrine-api-rules branch October 11, 2026 17:29
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.

1 participant