WebsiteBaker Logo
  • *
  • Templates
  • Help
  • Add-ons
  • Download
  • Home
*
Welcome, Guest. Please login or register.

Login with username, password and session length
 

News


WebsiteBaker 2.13.9 R25 is now available!


R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WB
https://forum.websitebaker.org/index.php/topic,32355.0.html


* Support WebsiteBaker

Your donations will help to:

  • Pay for our dedicated server
  • Pay for domain registration
  • and much more!

You can donate by clicking on the button below.


  • Home
  • Help
  • Search
  • Login
  • Register

  • WebsiteBaker Community Forum »
  • General Community »
  • Development 2.10.x and up »
  • Zebra_Image.php: Deprecated Meldung PHP 8.5
  • Print
Pages: [1]   Go Down

Author Topic: Zebra_Image.php: Deprecated Meldung PHP 8.5  (Read 137 times)

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8592
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Zebra_Image.php: Deprecated Meldung PHP 8.5
« on: March 08, 2026, 09:47:15 AM »
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: [Select]
// 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);
}

Unter PHP 8.5 sollte dieser Block ersetzt werden durch:

Code: [Select]
// free memory
unset($this->source_identifier, $identifier);

Matthias
Logged

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 733
Re: Zebra_Image.php: Deprecated Meldung PHP 8.5
« Reply #1 on: March 08, 2026, 10:58:45 AM »
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: [Select]
$this->source_identifier = null;$identifier ist hier nur eine lokale Variable im Objekt, die automatisch verfällt, wenn dieses Objekt verlassen wird

aus
Code: [Select]
// 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);
}

wird also
Code: [Select]
// free memory
        $this->source_identifier = null;
        return true;



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

« Last Edit: March 08, 2026, 12:04:40 PM by sternchen8875 »
Logged

  • Print
Pages: [1]   Go Up
  • WebsiteBaker Community Forum »
  • General Community »
  • Development 2.10.x and up »
  • Zebra_Image.php: Deprecated Meldung PHP 8.5
 

  • SMF 2.0.19 | SMF © 2017, Simple Machines
  • XHTML
  • RSS
  • WAP2