General Community > Development 2.10.x and up

Zebra_Image.php: Deprecated Meldung PHP 8.5

(1/1)

ruebenwurzel:
Hallo,

die framework/media/Zebra_Image.php erzeugt unter PHP 8.5 eine deprecated Meldung bezüglich 'imagedestroy' Ursache sind die Zeilen 1971 - 1980:


--- Code: ---// free memory
imagedestroy($this->source_identifier);
imagedestroy($identifier);

// for PHP 8.0.0+ imagedestroy is no-op (https://php.watch/versions/8.0/gdimage)
// and we have to use unset()
if (version_compare(PHP_VERSION, '8.0.0', '>=')) {
   unset($this->source_identifier);
   unset($identifier);
}
--- End code ---

Unter PHP 8.5 sollte dieser Block ersetzt werden durch:


--- Code: ---// free memory
unset($this->source_identifier, $identifier);
--- End code ---

Matthias

sternchen8875:
imagedestroy() ist seit PHP 8.0.0 ohne Funktion. Davor war diese Funktion zur Bereinigung der genutzten Ressourcen im Vorgang zuständig. ab PHP 8.0.0 erfolgt die Verwaltung innerhalb von PHP über Objekte und für diese ist keine solche Bereinigung notwendig.
Eine Versionsabfrage mit anschließendem unset() ist unnötig, da WB in den aktuellsten Versionen ein PHP-Minimum von 8.1.0 hat.
Alle Zeilen mit imagedestroy() können bedenkenlos gelöscht werden.
Admin Comment: korrigiert, da technisch falsch bzw nicht ausreichend
unset() diente in der Ressoucenverwaltung dazu, einzelne Elemente zu leeren. In der Objektverwaltung ab PHP 8.0.0 führt sie dazu, das diese Elemente aus dem Objekt gelöscht werden, d.h. $this->source_identifie würde bei einem erneuten Zugriff nicht mehr existieren und einen fatal error erzeugen. Besser verwenden:

--- Code: ---$this->source_identifier = null;
--- End code ---
$identifier ist hier nur eine lokale Variable im Objekt, die automatisch verfällt, wenn dieses Objekt verlassen wird

aus

--- Code: ---// free memory
imagedestroy($this->source_identifier);
imagedestroy($identifier);

// for PHP 8.0.0+ imagedestroy is no-op (https://php.watch/versions/8.0/gdimage)
// and we have to use unset()
if (version_compare(PHP_VERSION, '8.0.0', '>=')) {
   unset($this->source_identifier);
   unset($identifier);
}

--- End code ---

wird also

--- Code: ---// free memory
        $this->source_identifier = null;
        return true;
--- End code ---



weitere Vorkommen in der aktuellen WB-Version
der letzte Eintrag bezieht sich auf das  Droplet Text2Image und deren Install

Navigation

[0] Message Index

Go to full version