Update van wordpress plugin, vnl "deprecated" fouten bij update php 8
onze website gebruikt al enkele jaren de remote media library plugin, https://wordpress.org/plugins/remote-medias-lite/.
Kort gezegd, zorgt deze ervoor dat de foto's en albums op ons flickr kanaal, te zien zijn als men in wordpress in het "post" scherm, media wil toevoegen.
Daar worden dan alle foto's geladen, kan men ze selecteren en een galerij maken.
Zoals je ziet is deze plugin al enkele jaren niet meer bijgewerkt.
Onze site draait momenteel nog op php 7, maar we moeten nu toch echt naar php 8 gaan.
Hierna worden de foto's niet meer ingeladen in het post scherm, de reeds bestaande gallerijen met foto's blijven wel op de site staan. Ergens dus een kink in de kabel.
Bij nader inzicht komen er bijzonder veel "verouderd" meldingen op het scherm te staan,
Bericht
Verouderd Creation of dynamic property WPRemoteMediaExt\WPCore\hooks\ThemeScript::$isHooked is deprecated
Locatie
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:191
WPForms\ErrorHandler->error_handler()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:191
WPRemoteMediaExt\WPCore\WPfeature->hook()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:70
WPRemoteMediaExt\WPCore\WPfeature->__construct()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPplugin.php:38
WPRemoteMediaExt\WPCore\WPplugin->__construct()
wp-content/plugins/remote-medias-lite/bootstrap.php:31
WPRemoteMediaExt\PRemoteMedias->__construct()
wp-content/plugins/remote-medias-lite/bootstrap.php:20
WPRemoteMediaExt\PRemoteMedias::getInstance()
wp-content/plugins/remote-medias-lite/bootstrap.php:43
ocsRmlInit()
wp-includes/class-wp-hook.php:324
do_action('plugins_loaded')
wp-settings.php:506
Bericht
Verouderd Creation of dynamic property WPRemoteMediaExt\WPCore\hooks\AdminScript::$isHooked is deprecated
Locatie
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:191
WPForms\ErrorHandler->error_handler()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:191
WPRemoteMediaExt\WPCore\WPfeature->hook()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPfeature.php:73
WPRemoteMediaExt\WPCore\WPfeature->__construct()
wp-content/plugins/remote-medias-lite/vendor/loumray/wpcore/src/WPplugin.php:38
WPRemoteMediaExt\WPCore\WPplugin->__construct()
wp-content/plugins/remote-medias-lite/bootstrap.php:31
WPRemoteMediaExt\PRemoteMedias->__construct()
wp-content/plugins/remote-medias-lite/bootstrap.php:20
WPRemoteMediaExt\PRemoteMedias::getInstance()
wp-content/plugins/remote-medias-lite/bootstrap.php:43
ocsRmlInit()
wp-includes/class-wp-hook.php:324
do_action('plugins_loaded')
wp-settings.php:506
Dit zijn er helaas maar enkele.
graag had ik geweten wat ik nu zou kunnen doen, moet ik in alle vermelde locaties iets aanpassen, en zo ja wat zou het dan mogelijkerwijs kunnen zijn ?
resp vanaf regel 190 van WPfeature.php ziet er nog zo uit
$this->hooks[] = $hook;
$hook->isHooked = true;
}
Ik ben beginnend en verwacht ook niet dat er een simpele oplossing is, maar ik wil wel met enige hulp een poging wagen.
De plugin is opgebouwd rond guzzlehttp, en bevat daarnaast ook nog symfony en loumray.
alvast dank
Dan wordt het toch eens tijd voor een update van die plug-in. Heb je de maker al benaderd?
Dat dachten wij ook. Zowel op het bijhorende forum als email adres berichtjes nagelaten, waar helaas niet op gereageerd wordt. We overwegen ook een developer aan te schrijven, hoewel het voor ons moeilijk is om hiervoor de juiste keuze te maken. We willen uiteraard ook niet bedrogen uitkomen.
De foutmelding over de "dynamic property (..) is deprecated" wijst erop dat er in de PHP-code dynamische eigenschappen (properties) worden gemaakt voor een class. Het probleem hier is dat het creëren van dynamische eigenschappen op deze manier verouderd is.
In PHP zou je normaal gesproken eigenschappen van een klasse definiëren in de klasse zelf, in plaats van dynamisch eigenschappen toe te voegen. Het gebruik van dynamische eigenschappen kan leiden tot moeilijk te onderhouden code en is vatbaar voor fouten.
Hier is een voorbeeld van hoe je eigenschappen op een normale manier in een klasse zou definiëren:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
namespace WPRemoteMediaExt\WPCore\hooks;
class ThemeScript {
public $isHooked;
public function __construct() {
$this->isHooked = true;
}
}
// Gebruik van de klasse
$themeScript = new ThemeScript();
echo $themeScript->isHooked; // Output: 1
class ThemeScript {
public $isHooked;
public function __construct() {
$this->isHooked = true;
}
}
// Gebruik van de klasse
$themeScript = new ThemeScript();
echo $themeScript->isHooked; // Output: 1
Maar gezien ik de code niet ken, is dit enkel een stukje pseudo-code, waarvan je wel moet begrijpen hoe het werkt.
Alvast bedankt voor de informatie
Lees wel even de criteria van dat forum zodat alles duidelijk is voor iedereen die erop wilt reageren.