• Resolved m4rc1

    (@m4rc1)


    Hello My Calendar development team,

    I’ve encountered an issue while using the latest version of your plugin on a WordPress site running PHP 8.4. Specifically, attempting to open the post editor leads to a blank page—no editor interface appears—until I deactivate the My Calendar plugin.

    I checked the debug.log and found numerous “Deprecated” notices related to the plugin components, such as:

    • Spatie\IcalendarGenerator\Components\CustomEvent::create(): Implicitly marking parameter $name as nullable is deprecated…
    • ActionScheduler_Store::save_action(): Implicitly marking parameter $scheduled_date as nullable is deprecated…
    • (and multiple similar notices)

    These indicate that the plugin’s code uses parameter declarations like:
    function example(string $param = null) { … }
    Which PHP 8.4 flags as deprecated, and now recommends using:
    function example(?string $param = null) { … }

    See official PHP recommendation: PHP 8.4 deprecates implicitly nullable parameters — explicit nullable type must be used instead (https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated)

    This seems to not just be a warning—when My Calendar is activated, the WordPress post editor (Gutenberg or Classic) fails to load, showing a blank screen. Deactivating the plugin resolves the issue and restores the editor functionality.

    Steps to reproduce:

    1. Enable My Calendar plugin on a WordPress site with PHP 8.4.
    2. Attempt to create or edit a post.
    3. The editor fails to load (blank page), and deprecation notices appear in debug.log.
    4. Deactivating the plugin restores the editor.

    Suggested fix:
    Please update the plugin code (and related dependencies, like Spatie iCalendarGenerator and ActionScheduler) to use explicit nullable types (?Type $param = null) instead of implicit ones. This would ensure PHP 8.4 compatibility and prevent editor loading issues.

    Thank you for your attention to this matter!

Viewing 1 replies (of 1 total)
  • Plugin Author Joe Dolson

    (@joedolson)

    My hands are somewhat tied about this one right now. I can update the dependencies, but then I’ll have to move the minimum PHP for My Calendar to PHP 8, because Spatie released this fix along with removing support for PHP 7.4. But in WordPress, PHP 7.4 is still about 17% of users, so removing that support is a bit premature. PHP 8.4, on the other hand, is only at 3%.

    I’ll definitely make that update when those numbers move further, but right now it doesn’t make sense for me to choose to support PHP 8.4 and sacrifice users on 7.4.

Viewing 1 replies (of 1 total)

The topic ‘PHP 8.4: Implicitly nullable parameter deprecation causes editor not loading’ is closed to new replies.