Skip to content

FLUX-803 - Support PHP 8.5 - #7

Merged
qschmick merged 3 commits into
mainfrom
FLUX-803/php-8.5-support
Oct 1, 2026
Merged

qschmick merged 3 commits into
mainfrom
FLUX-803/php-8.5-support

Conversation

@qschmick

@qschmick qschmick commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Allows PHP 8.5: "php": "~8.3.1|~8.4.1|~8.5.0", keeping the existing per-minor style.
  • The run-tests matrix now covers PHP 8.3, 8.4 and 8.5 (it was 8.3 only), with fail-fast: false.
  • Fixes the test that has kept main red. run-tests on main has failed on every run since at least 2026-01-30:
    • BwtApiClientTest faked …/123/results?limit=1&offset=0, but getAmazonResults() defaults to limit=1000, so the fake never matched.
    • BaseTest::setUp() called Http::preventStrayRequests() before refreshApplication(). That builds a new app and discards the setting, so the unmatched request reached the real bwt.com, and the test failed on its HTML response.
    • The fake now uses the URL the client calls, and preventStrayRequests() runs after refreshApplication(). Checked by restoring the old URL: the test now fails with Attempted request to [https://bwt.com/api/123/results?limit=1000&offset=0] without a matching fake, with no network call.

Testing

Ran composer update --prefer-stable and composer test in php:<v>-cli containers, as CI does:

PHP Result
8.3.35 1 passed (1 assertion)
8.4.26 1 passed (1 assertion)
8.5.11 1 passed (1 assertion)

On unmodified main, the same run fails with API request failed: <!DOCTYPE html>….

Ticket: FLUX-803

  • Drops a stale phpstan ignore. On current dependencies (laravel/framework 12.69.3), Illuminate\Http\Client\Response defines getStatusCode(), so phpstan failed with "Ignored error pattern … was not matched". Unmodified main fails the same way today. phpstan is clean on 8.3, 8.4 and 8.5 after removing it.

The test faked limit=1 while getAmazonResults() defaults to limit=1000, so the
fake never matched. preventStrayRequests() ran before refreshApplication(),
which discards it, so the unmatched request reached the real API and the test
failed on its HTML response. main's run-tests has failed on every run since at
least 2026-01-30 for this reason.
Adds ~8.5.0 to the php constraint, keeping the per-minor style, and runs the
test matrix on PHP 8.3, 8.4 and 8.5 with fail-fast off so one version's result
does not cancel the others.
Laravel's HTTP client Response now defines getStatusCode(), so the ignored error
is no longer reported, and phpstan fails on the unmatched ignore pattern. With
current dependencies main fails the same way; this is not caused by the 8.5
change.
@qschmick
qschmick marked this pull request as ready for review October 1, 2026 12:12
@qschmick
qschmick merged commit 2e100c6 into main Oct 1, 2026
5 checks passed
@qschmick
qschmick deleted the FLUX-803/php-8.5-support branch October 1, 2026 12:13
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