web-dev-qa-db-fra.com

Variables globales lors des opérations d'activation, de désactivation et de désinstallation de plug-ins

Pour les crochets d'activation, le codex stipule que vous devez être explicite sur les globals:

Une note sur les variables lors de l'activation

Mais cela ne semble pas fonctionner sur uninstall.php

Si je définis un global dans mon fichier de plugin principal comme ceci:

global $plugin_options_name;

$plugin_options_name = 'xxxxxxxxx';

Le crochet d'activation peut l'utiliser via une instruction globale, contrairement à uninstall.php.

Je dois redéclarer la variable dans unistall.php

Si tel est le cas, si je passe au hook de désinstallation, cela changera?

1
e4rthdog

Vous devriez préférer le point d'ancrage de la désinstallation au fichier si votre plug-in principal n'a pas d'effets secondaires (génère du HTML ou écrit automatiquement dans le fichier/DB lorsqu'il est chargé). OMI, il y a trop de risque (c'est-à-dire non nul) de mal coder le fichier uninstall.php et d'ouvrir le fichier pour diriger l'exécution de l'extérieur. Cela aide également à avoir tous les codes pertinents au même endroit.

uninstall.php, s’il existe, est exécuté sans charger le code du plugin (c’est son objectif) et, par conséquent, tout ce qui est déclaré dans le code du plugin ne sera pas disponible pour uninstall.php.

2
Mark Kaplun

Je définis les constantes et les globales dans leur propre fichier, que je charge à la fois dans le fichier principal du plug-in et dans uninstall.php. De cette façon, tous mes globals sont organisés en un seul endroit. Et puis, je n'ai plus à craindre d'effets secondaires accidentels sur la désinstallation, comme cela pourrait arriver si vous utilisiez le crochet.

0
J.D.