L'une des fonctions que j'utilise dans mon plugin pollue la portée globale avec un nom qui pourrait entrer en collision avec une autre fonction (utilisée dans un autre plugin). Donc, je suppose que je devrais le déprécier. Mais comment dois-je procéder?
function foo() {
echo 'bar';
}
Je suis au courant, _deprecate_function()
mais je serais reconnaissant pour un exemple montrant toutes les étapes à suivre pour supprimer la fonction du cœur de mon plugin.
Réf: https://developer.wordpress.org/reference/functions/_deprecated_function/
php
functions
deprecation
Henrywright
la source
la source
Réponses:
En plus de la réponse de @Welcher:
Il y a quelques bons exemples de " cimetière " dans le noyau, où "les fonctions viennent à mourir ".
Vous pouvez les utiliser comme lignes directrices, par exemple en ce qui concerne la documentation.
Voici un exemple pour le
permalink_link()
sous lewp-includes/deprecated.php
Voici la documentation en ligne de la
_deprecated_function
fonction qui explique les arguments d'entrée:la source
_deprecated_function()
3) ajouter un appel à ma nouvelle fonction qui remplace l'ancienneLa dépréciation n'est pas toujours égale à la suppression, cela signifie généralement que l'élément est marqué pour une suppression EVENTUELLE de l'API. Est-ce une méthode qui sera appelée en externe - comme par d'autres plugins ou développeurs? Si cette méthode n'est utilisée que par le plugin en interne, vous pouvez probablement le supprimer en toute sécurité en le remplaçant par une meilleure fonction de nom.
Sinon, je créerais la fonction la mieux nommée et je demanderais à celle qui est mal nommée de l'appeler avec un
__doing_it_wrong
appel - lisez-la dans le codex Cela donnera aux autres développeurs le temps de mettre à jour leurs références à la méthode et vous pouvez supprimer la méthode en toute sécurité dans une version ultérieure.J'espère que cela t'aides!
la source
Vous créez un nouveau plugin et conseillez à vos utilisateurs de migrer vers celui-ci car celui-ci est EOL.
Il n'y a rien de plus ennuyeux que les auteurs de plugins et de thèmes changeant leurs API publiques et essayant de les traiter comme "juste une autre petite mise à jour". Il n'y a aucune raison de casser des sites en raison d'un problème qui n'affecte pas réellement vos utilisateurs.
la source
Je suggérerais quelque chose comme:
Cela a pour effet d'afficher un avertissement de dépréciation dans les journaux avec une trace de pile. Naturellement, cela ne fonctionnera que si la journalisation est activée dans WordPress.
L'opérateur ternaire est là car la constante E_USER_DEPRECATED n'a été introduite qu'en PHP 5.3.0. Dans les anciennes versions, nous pouvons plutôt recourir à un simple avertissement utilisateur.
Du manuel PHP sur les constantes d'erreur :
La raison pour laquelle je n'aime pas utiliser _doing_it_wrong ou __deprecated_function est que ces fonctions sont destinées uniquement au noyau WordPress. De la référence de code sur ces fonctions:
la source