Skip to content

Improve PHP 8.4+ support by avoiding implicitly nullable types - #46

Merged
clue merged 1 commit into
clue:1.xfrom
clue-labs:php8.4
Oct 11, 2026
Merged

clue merged 1 commit into
clue:1.xfrom
clue-labs:php8.4

Conversation

@clue

@clue clue commented Oct 11, 2026

Copy link
Copy Markdown
Owner

This changeset improves PHP 8.4+ support by avoiding implicitly nullable types as discussed in reactphp/promise#260. The same idea applies, but v1 requires manual type checks to support legacy PHP versions as the nullable type syntax requires PHP 7.1+ otherwise.

The react/mysql dev dependency used in one example is still affected until its upcoming v0.7.0 release (see friends-of-reactphp/mysql#203), so this example temporarily ignores the resulting deprecation notices.

Builds on top of #45, clue/reactphp-socks#123, reactphp/promise#260, reactphp/socket#318, reactphp/child-process#114, reactphp/stream#179 and others
Refs #41

@clue clue added the new feature New feature or request label Oct 11, 2026
@clue clue added this to the v1.5.0 milestone Oct 11, 2026
@clue
clue requested a balanced review from Copilot October 11, 2026 21:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The compatibility changes are consistent, tested, and preserve the documented legacy PHP support.

0 open findings

What changed in this PR

Improves PHP 8.4 compatibility while retaining PHP 5.3 support.

Changes:

  • Replaces implicitly nullable loop types with manual validation and tests.
  • Updates ReactPHP dependencies and adds PHP 8.4 CI coverage.
  • Temporarily suppresses a known react/mysql deprecation.
File Description
src/​SshSocksConnector.php Adds manual loop validation.
src/​SshProcessConnector.php Adds manual loop validation.
tests/​SshSocksConnectorTest.php Tests invalid loop handling.
tests/​SshProcessConnectorTest.php Tests invalid loop handling.
examples/​31-mysql-ssh-tunnel.php Suppresses the known MySQL deprecation.
composer.json Raises dependency minimum versions.
.github/​workflows/​ci.yml Adds PHP 8.4 testing.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@clue
clue merged commit dfca094 into clue:1.x Oct 11, 2026
15 checks passed
@clue
clue deleted the php8.4 branch October 11, 2026 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants