Re: need help fixing for php 8.4

AllenJB <[email protected]> Sat, 19 Apr 2025 09:05:43 +0100
Newsgroups gmane.comp.php.general
Message-ID <[email protected]>
On 18/04/2025 21:27, [email protected] wrote:
> here the errors:
>
> Deprecated
> : 
> League\Flysystem\EventableFilesystem\EventableFilesystem::__construct(): 
> Implicitly marking parameter $emitter as nullable is deprecated, the 
> explicit nullable type must be used instead in
> /usr/www/dcu/public_html/src/vendor/league/flysystem-eventable-filesystem/src/EventableFilesystem.php 
>
> on line
> 30
>
This change is detailed here: 
https://www.php.net/manual/en/migration84.deprecated.php#migration84.deprecated.core.implicitly-nullable-parameter

> Deprecated
> : Use of "parent" in callables is deprecated in
> /usr/www/dcu/public_html/src/vendor/league/flysystem-eventable-filesystem/src/EventableFilesystem.php 
>
> on line
> 431

This change is documented here: 
https://www.php.net/manual/en/migration82.deprecated.php#migration82.deprecated.core.relative-callables

See also 
https://wiki.php.net/rfc/deprecate_partially_supported_callables#backward_incompatible_changes


In general, the migrating appendices ( 
https://www.php.net/manual/en/appendices.php ) are a good reference for 
changes between PHP versions - see in particular the Deprecated Features 
and Backward Incompatible Changes sections when upgrading existing code.


It looks like the FlySystem Eventable library has been abandoned since 
FlySystem dropped the plugins functionality some time ago ( 
https://flysystem.thephpleague.com/docs/upgrade-from-1.x/#plugins-are-removed 
) . The package is marked abandoned on Packagist and its repository has 
been archived (with the last changes 11 years ago).

You should look to migrate away from this library. Based on the 
description of what it did ( 
https://github.com/thephpleague/flysystem-eventable-filesystem/blob/44b315a8923b9209cedc5b9f6c2b62c9fd5c0977/readme.md#user-content-events 
) it should be easy to write a wrapper around FlySystem the performs the 
same functionality.

For example, instead of adding an event for "before.read", the wrapper 
would do whatever the event did, then call the FlySystem read method (or 
whatever the modern equivalent is).

Making this change will make this and future upgrades easier since 
you'll be able to pull in the latest version of FlySystem, with support 
for recent PHP versions, rather than manually maintaining an ancient 
version, which is error prone and won't contain bug and security fixes.