Uma das funções que estou usando no meu plug-in está poluindo o escopo global com um nome que pode colidir com outra função (usada em outro plug-in). Então, acho que devo depreciá-lo. Mas como devo fazer isso?
function foo() {
echo 'bar';
}
Estou ciente, _deprecate_function()
mas ficaria grato por um exemplo mostrando todas as etapas que devo seguir para remover a função do núcleo do meu plugin.
Ref: https://developer.wordpress.org/reference/functions/_deprecated_function/
php
functions
deprecation
Henry Wright
fonte
fonte
Respostas:
Além da resposta de @Welcher:
Existem alguns bons exemplos de " cemitério " no núcleo, em que " funções morrem ".
Você pode usá-los como diretrizes, por exemplo, com relação à documentação.
Aqui está um exemplo para o
permalink_link()
sob owp-includes/deprecated.php
Aqui está a documentação embutida para a
_deprecated_function
função que explica os argumentos de entrada:fonte
_deprecated_function()
3) adicione uma chamada à minha nova função que substitui a antigaA reprovação nem sempre é igual à remoção, geralmente significa que o item está marcado para remoção EVENTUAL da API. Esse é um método que será chamado externamente - como em outros plugins ou desenvolvedores? Se esse método for usado apenas internamente pelo plug-in, provavelmente você poderá remover com segurança substituí-lo por uma função de nome melhor.
Caso contrário, eu criaria a função com melhor nome e chamaria a pessoa com o nome incorreto com uma
__doing_it_wrong
chamada - leia sobre isso no codex Isso dará a outros desenvolvedores tempo para atualizar suas referências ao método e você pode remover com segurança o método em uma versão posterior.Espero que isto ajude!
fonte
Você cria um novo plug-in e aconselha seus usuários a migrar para ele, pois o atual é o EOL.
Não há nada mais irritante do que autores de plugins e temas alterando suas APIs públicas e tentando tratá-lo como "apenas mais uma pequena atualização". Não há motivo para interromper sites devido a um problema pelo qual os usuários não estão sendo afetados.
fonte
Eu sugeriria algo como:
Isso tem o efeito de mostrar um aviso de descontinuação nos logs, juntamente com um rastreamento de pilha. Naturalmente, isso só funcionará se o log estiver ativado no WordPress.
O operador ternário está lá porque a constante E_USER_DEPRECATED foi introduzida apenas no PHP 5.3.0. Nas versões anteriores, podemos recorrer a um aviso simples do usuário.
No manual do PHP sobre constantes de erro :
O motivo pelo qual não gosto de usar _doing_it_wrong ou __deprecated_function é que essas funções são destinadas apenas ao núcleo do WordPress. A partir da referência de código nessas funções:
fonte