Skip to content

[FEATURE] Ordered UIDs filter — return collections in externally reso…#149

Open
klamparski wants to merge 9 commits into
release/5.0.0from
148-feature-ordered-uids-filter-return-collections-in-externally-resolved-order-order-by-field
Open

[FEATURE] Ordered UIDs filter — return collections in externally reso…#149
klamparski wants to merge 9 commits into
release/5.0.0from
148-feature-ordered-uids-filter-return-collections-in-externally-resolved-order-order-by-field

Conversation

@klamparski

Copy link
Copy Markdown
Collaborator

…lved order (ORDER BY FIELD)

@klamparski klamparski added this to the 5.0.0 milestone Jul 20, 2026
@klamparski klamparski self-assigned this Jul 20, 2026
@klamparski klamparski added the enhancement New feature or request label Jul 20, 2026
- dedicated MissingCollectionOperationException instead of a generic
  RuntimeException in CommonRepository::findFiltered()
- FilterInterface v6 note reworded so it does not carry an open TODO tag
Automatic analysis applies Oracle PL/SQL rules to TYPO3 ext_tables.sql
(MySQL dialect), producing false positives like "Use VARCHAR2 instead
of VARCHAR". Exclusion via .sonarcloud.properties - the file automatic
analysis reads; wildcards are unsupported there, hence the explicit
path.
…tection

TCA fixture files are TYPO3 boilerplate that is near-identical for every
table by design (91%+ mutual duplication between the Book and Product
TCA tripped the <=3% duplications quality gate on new code). CPD
exclusion keeps the gate measuring production code only.
SonarCloud failed the PR quality gate: 4.85% duplicated lines on new
code (required <= 3%), coming from the fixture TCA files - TYPO3 TCA is
boilerplate that is near-identical for every table by design (Book vs
Product TCA showed 91%+ mutual duplication). The cpd exclusion added in
.sonarcloud.properties was not honored by automatic analysis, so the
duplication is now removed at the source instead: a shared
TcaFixtureBase.php builds the common skeleton (ctrl, enablecolumns,
types) and each of the four table files declares only what actually
differs - table title, columns, showitem and label field.
PHPUnit 13 (installed on composer highest with PHP 8.4) removed with()
on test stubs configured via method() without expects() - the same
incompatibility fixed for the other unit tests in 26f4f50. Stub argument
mapping goes through willReturnMap() instead, matching that commit's
pattern. This is what failed PHPStan in the test (13, 8.4, highest) and
(14, x, x) matrix jobs.
SonarCloud's reliability gate flagged the require of the shared TCA base
in all four table files ("replace require with require_once") - but
require_once would actually break: on the second inclusion it returns
true instead of the builder closure. Moving the skeleton into the
autoloadable TcaFixtureBuilder class satisfies the rule without that
trap and drops the extra file-inclusion indirection.

Also excludes the binary fixtures (Postman JPEG, impexp blob) from
SonarCloud indexing - they are the source of the analysis warning about
file encoding, which predates this PR.
@sonarqubecloud

Copy link
Copy Markdown

@klamparski
klamparski marked this pull request as ready for review July 20, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant