Skip to content

πŸš€βœ¨ Add Full PHP 8.4 Support πŸ˜πŸ”§πŸ’₯ #71

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

francescobianco
Copy link
Member


Description:

This issue is to officially track and implement support for PHP 8.4 across the php-imap2 library.

With PHP 8.4 introducing several changes (deprecations, strictness improvements, internal API adjustments), it's crucial to make sure php-imap2 stays compatible and stable moving forward.


Checklist:

  • Review all core files for potential incompatibilities
  • Update deprecated PHP functions or syntax
  • Validate compatibility with new PHP 8.4 INI defaults and behavior
  • Test under PHP 8.4 using the full test suite (if available)
  • Add PHP 8.4 to CI matrix (GitHub Actions / Travis / etc.)
  • Update composer.json to allow php: ^8.4
  • Tag a new release (v2.x.x or v3.0.0 depending on BC impact)

Context:

  • PHP 8.4 RFCs Overview
  • Focus on:
    • Potential changes to imap_* functions under PHP 8.4
    • Stricter type handling in class constructors and method parameters
    • New warnings or deprecations that could affect this library

Note:

If you’re already running PHP 8.4 and encounter any issues, please comment below with:

  • PHP version output (php -v)
  • Failing method / class
  • Relevant error message or stack trace

Let’s keep this library future-proof and blazing fast! πŸš€πŸ˜πŸ’™

@SinergiaCRM
Copy link

Hi @francescobianco!

We have detected an error in the use of the library by SinergiaCRM in the closeSocket() function in the vendor/javanile/php-imap2/src/Roundcube/ImapClient.php file after updating the php version to 8.4

In case it's helpful, we've resolved it for now by checking that the property the function receives is not null using the following code:

if ($this->fp != null) {
@fclose($this->fp);
$this->fp = null;
}

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants