O que vale a pena usar add_action quando podemos simplesmente usar add_filter?

10

Acabei de analisar o código do wordpress e encontrei essa definição de add_action:

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
    return add_filter($tag, $function_to_add, $priority, $accepted_args);
}

Agora, por que estamos perdendo um ciclo de CPU apenas para chamar outra função que podemos simplesmente fazer nós mesmos e, em seguida, não teremos que lembrar dois nomes de função diferentes para a mesma coisa.

    
por Gagan 12.04.2012 / 11:16

1 resposta

9

Ações fazem coisas. Filtros modificam as coisas. Você faz coisas em uma ação, ao passo que, se você aplicar um filtro, não espera que ocorram eventos ou ações, a não ser a modificação do valor que está sendo filtrado. por exemplo. Não há problema em enviar um e-mail ou salvar um valor de banco de dados em um filtro, mas tudo bem em uma ação. Pode haver momentos raros em que você precisa violar essa convenção, mas é útil e necessário.

Ao substituir todas as chamadas add_action e do_action por suas contrapartes de filtro, você remove a distinção e força o conhecimento de nomes como 'the_content' etc são ações ou filtros de todo o mundo e, em sua memória, encoraja erros.

Então, ao invés de tornar seu código mais difícil de ler, perceba que se seu código é lento, não é porque você não raspou uma instrução ou duas aqui e ali, é seu servidor lento ou sua estrutura algorítmica de seu código e a natureza dos dados sendo manipulados. Você obteria muito mais da refatoração de seus processos, atualizando o hardware ou alterando seus paradigmas. No grande esquema das coisas, um site lento é provavelmente lento porque faz muito ou tem consultas mal escritas, por ex. postar consultas que dependem de meta ou __not_in consultas de tipo

Para colocar isso em perspectiva, quando o WordPress é executado, o PHP executa milhões de instruções. As ações de troca de filtros dificilmente afetariam o 1 milésimo de um percentil.

enlace

  

Eu experimentei uma nova instalação do Wordpress. O script pára   antes que termine com um "Bus Error" no meu laptop, mas o número de   opcodes já estava em mais de 2,3 milhões . Disse o suficiente.

Se você realmente quiser tentar, veja como o cara usou o VLD e teste sua teoria por si mesmo.

    
por Tom J Nowell 12.04.2012 / 11:39

Tags