Update van wordpress plugin, vnl "deprecated" fouten bij update php 8

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick de baerdemaeker

nick de baerdemaeker

27/02/2024 13:49:59
Quote Anchor link
Beste,

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
 
PHP hulp

PHP hulp

05/11/2024 22:02:06
 
- Ariën  -
Beheerder

- Ariën -

27/02/2024 14:11:14
Quote Anchor link
Dan wordt het toch eens tijd voor een update van die plug-in. Heb je de maker al benaderd?
 
Nick de baerdemaeker

nick de baerdemaeker

27/02/2024 15:05:56
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

27/02/2024 15:21:36
Quote Anchor link
Dan zou je de plug-in beter kunnen laten forken tot een nieuwe plug-in, en die aanpassen om te voorkomen dat een nieuwe update de wijzigingen weer te-niet-doet.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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


Maar gezien ik de code niet ken, is dit enkel een stukje pseudo-code, waarvan je wel moet begrijpen hoe het werkt.
 
Nick de baerdemaeker

nick de baerdemaeker

27/02/2024 15:53:05
Quote Anchor link
Is dit iets wat u eventueel zou zien zitten om verder te bekijken met meer code ?
Alvast bedankt voor de informatie
 
- Ariën  -
Beheerder

- Ariën -

27/02/2024 16:05:34
Quote Anchor link
Als je dit wilt laten uitbesteden aan iemand, dan kan je een vacature-topic aanmaken in het vacatureforum hier op PHPhulp.

Lees wel even de criteria van dat forum zodat alles duidelijk is voor iedereen die erop wilt reageren.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.