Una de las funciones que estoy usando en mi complemento es contaminar el alcance global con un nombre que podría colisionar con otra función (utilizada en otro complemento). Entonces, supongo que debería desaprobarlo. Pero, ¿cómo debo hacer eso?
function foo() {
echo 'bar';
}
Estoy al tanto, _deprecate_function()
pero agradecería un ejemplo que muestre todos los pasos que debo seguir para eliminar la función del núcleo de mi complemento.
Ref: https://developer.wordpress.org/reference/functions/_deprecated_function/
php
functions
deprecation
henrywright
fuente
fuente
Respuestas:
Además de la respuesta de @Welcher:
Hay algunos buenos ejemplos de " cementerio " en el núcleo, donde "las funciones vienen a morir ".
Puede usarlos como pautas, por ejemplo, con respecto a la documentación.
Aquí hay un ejemplo de esto
permalink_link()
debajo dewp-includes/deprecated.php
Aquí está la documentación en línea para la
_deprecated_function
función que explica los argumentos de entrada:fuente
_deprecated_function()
3) agregar una llamada a mi nueva función que reemplaza la anteriorLa desaprobación no siempre equivale a ser eliminado, por lo general significa que el elemento está marcado para su eliminación EVENTUAL de la API. ¿Es este un método que se llamará externamente, como lo hacen otros complementos o desarrolladores? Si este método solo es utilizado internamente por el complemento, probablemente pueda eliminarlo con seguridad y reemplazarlo con una mejor función de nombre.
De lo contrario, crearía la función mejor nombrada y la llamaría mal con una
__doing_it_wrong
llamada; lea sobre esto en el códice Esto les dará tiempo a otros desarrolladores para actualizar sus referencias al método y puede eliminarlo de manera segura en Una versión posterior.¡Espero que esto ayude!
fuente
Crea un nuevo complemento y aconseja a sus usuarios que migren a él, ya que el actual es EOL.
No hay nada más molesto que los autores de plugins y temas que cambian sus API públicas e intentan tratarlo como "solo otra pequeña actualización". No hay razón para romper sitios debido a un problema por el cual sus usuarios no se ven afectados.
fuente
Sugeriría algo como:
Esto tiene el efecto de mostrar una advertencia de desuso en los registros junto con un seguimiento de la pila. Naturalmente, esto solo funcionará si el registro está habilitado en WordPress.
El operador ternario está allí porque la constante E_USER_DEPRECATED solo se introdujo en PHP 5.3.0. En versiones anteriores, podemos recurrir a una simple advertencia de usuario.
Del manual de PHP sobre constantes de error :
La razón por la que no me gusta usar _doing_it_wrong o __deprecated_function es que estas funciones están destinadas solo al núcleo de WordPress. De la referencia del código en esas funciones:
fuente