Eine der Funktionen, die ich bin in meiner Plugin ist die Verschmutzung des globalen Bereichs mit einem Namen, der mit einer anderen Funktion (verwendete in einem anderen Plugin) kollidieren könnte. Ich denke, ich sollte es ablehnen. Aber wie soll ich das?
function foo() {
echo 'bar';
}
Ich bin mir dessen bewusst , _deprecate_function()
aber würde für ein Beispiel alle Schritte zeigt dankbar ich berücksichtigt werden , damit die Funktion von meinem Plugins Kern zu entfernen.
Ref: https://developer.wordpress.org/reference/functions/_deprecated_function/
php
functions
deprecation
henrywright
quelle
quelle
Antworten:
Zusätzlich zur Antwort von @Welcher:
Es gibt einige guten „ Friedhof “ Beispiele im Kern, wo „ Funktionen kommen , um zu sterben “.
Man könnte sie als Richtlinien, zum Beispiel in Bezug auf die Dokumentation verwenden.
Hier ist ein solches Beispiel für die
permalink_link()
unter derwp-includes/deprecated.php
Hier ist die Inline - Dokumentation für die
_deprecated_function
Funktion , die die Eingabeargumente erklärt:quelle
_deprecated_function()
3) füge einen Aufruf zu meiner neuen Funktion hinzu, die den alten ersetztNicht immer bedeutet, dass das Element entfernt wird. In der Regel bedeutet dies, dass das Element für die EVENTUAL-Entfernung aus der API markiert ist. Handelt es sich um eine Methode, die extern aufgerufen wird - wie bei anderen Plugins oder Entwicklern? Wenn diese Methode nur intern vom Plugin verwendet wird, können Sie sie wahrscheinlich sicher entfernen und durch eine bessere Namensfunktion ersetzen.
Wenn nicht, würde ich die besser benannte Funktion erstellen und die schlecht benannte Funktion mit einem
__doing_it_wrong
Aufruf aufrufen lassen - lesen Sie darüber im Codex. Dadurch haben andere Entwickler Zeit, ihre Verweise auf die Methode zu aktualisieren, und Sie können die Methode in sicher entfernen eine spätere Version.Hoffe das hilft!
quelle
Sie erstellen ein neues Plugin und raten Ihren Benutzern, darauf zu migrieren, da das aktuelle Plugin EOL ist.
Es gibt nichts ärgerlicheres als Plugin- und Theme-Autoren, die ihre öffentlichen APIs ändern und versuchen, sie als "nur ein weiteres kleines Upgrade" zu behandeln. Es gibt keinen Grund, Websites aufgrund eines Problems zu brechen, von dem Ihre Benutzer tatsächlich nicht betroffen sind.
quelle
Ich würde folgendes vorschlagen:
Dies hat zur Folge, dass in den Protokollen eine Verfallswarnung zusammen mit einem Stack-Trace angezeigt wird. Dies funktioniert natürlich nur, wenn die Protokollierung in WordPress aktiviert ist.
Der ternäre Operator ist da, weil die Konstante E_USER_DEPRECATED nur in PHP 5.3.0 eingeführt wurde. In älteren Versionen können wir stattdessen auf eine einfache Benutzerwarnung zurückgreifen.
Aus dem PHP-Handbuch zu Fehlerkonstanten :
Der Grund, warum ich _doing_it_wrong oder __deprecated_function nicht gerne benutze, ist, dass diese Funktionen nur für WordPress Core gedacht sind. Aus der Code-Referenz zu diesen Funktionen:
quelle