'Deprecated: … is deprecated' in PHP 8 betekent dat code iets gebruikt dat in een volgende PHP-versie verdwijnt. Het werkt nog, maar moet worden aangepast. Zo pak je het aan.
Een deprecation is een waarschuwing vooraf: deze manier van programmeren werkt nu nog, maar wordt in een toekomstige PHP-versie verwijderd. Voorbeelden uit PHP 8.x zijn het doorgeven van null aan functies die een tekst verwachten (Passing null to parameter #1 ($string) of type string is deprecated, sinds PHP 8.1) en het dynamisch aanmaken van eigenschappen op een object (sinds PHP 8.2).
Deprecated-meldingen breken je site niet, maar ze zijn een takenlijst voor de volgende upgrade. Wie ze negeert, krijgt ze later terug als fatal error.
Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Zet tijdelijk E_DEPRECATED aan in het foutenlog (niet op het scherm) en laat de site een dag draaien. Zo zie je welke bestanden het betreft.
; php.ini (testomgeving)
error_reporting = E_ALL
display_errors = Off
log_errors = OnKomen de meldingen uit code van derden (WordPress-plugins, Composer-pakketten), dan is een update meestal de oplossing. Ontwikkelaars passen hun code aan op nieuwe PHP-versies.
Geef functies als strlen(), trim() of str_replace() geen null mee.
<?php
// was: trim($waarde) met $waarde = null
$schoon = trim($waarde ?? '');Declareer eigenschappen in de klasse, of markeer de klasse bewust met het attribuut AllowDynamicProperties.
<?php
class Product {
public ?string $naam = null; // gedeclareerd
}Draai de site op een testomgeving met de nieuwe PHP-versie en kijk in het log. Zie ook PHP-versie controleren en updaten.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Niet met spoed, wel vóór je naar de volgende PHP-versie gaat. Zet ze uit op het scherm, maar houd ze bij in het log.
Op het scherm wel (en dat hoort op een live site). Helemaal negeren is onverstandig: het zijn de fouten van de volgende upgrade.
Kijk of er een update is. Is de plugin niet meer onderhouden, zoek dan een alternatief voordat je PHP bijwerkt.