web-dev-qa-db-fra.com

Pourquoi le noyau utilise-t-il l'impression plutôt que l'écho?

J'ai lu quelque part, et je ne me souviens plus où, que echo est un moyen plus efficace de produire des données que print.

Pourquoi Drupal core utilise-t-il autant de print? Y a-t-il une raison particulière derrière cela?

23
jayarjo

echo n'est plus rapide que dans les environnements académiques. La différence est très marginale. Un benchmark rapide que je viens de faire: Le temps de récupération d'une ligne d'une table avec plus de 2000 nœuds est de 1 unité.

Afin d'obtenir une amélioration de 1 unité, je devrais remplacer environ 3.700.000 (plus de 3 millions) print instructions par echo. En d'autres termes, si vous souhaitez améliorer les performances, ce n'est pas le bon point de départ.

Vu que print peut être utilisé dans une gamme beaucoup plus large de cas que echo, le premier a quelques avantages. Il vous laisse trois options:

  • Utilisez toujours print
  • Utilisez echo dans la mesure du possible et retournez sur print
  • Utilisez echo toujours et refactorisez votre code si echo ne peut pas être utilisé, pour l'utiliser

Drupal a par défaut le premier.

Pour répondre à votre question réelle sur la raison pour laquelle cela a été choisi: Ce n'était pas le cas. Il a simplement grandi de cette façon.

25
berkes