Pour une grande partie de mon site, j’utilise get_template_part
principalement parce que j’avais tout d’abord codé le fichier en html/css et qu’il me semblait plus facile d’appeler chaque partie à ma guise.
Ma question est la suivante: cela aura-t-il un impact notable sur les performances? Si j'appelle, disons 3 ou 4 parties de modèle. Combien, à votre avis, est-ce trop, si j'apportais seulement de petits extraits?.
Aide appréciée.
À mon avis, trois ou quatre appels de get_template_part()
sont parfaitement acceptables et même conformes à la norme pour certains des thèmes les plus vastes et les plus complexes.
Je ne sais pas combien, c’est trop, mais je pense que c’est un nombre assez important pour que les performances soient remarquables.
get_template_part()
appelle locate_template()
.
locate_template()
utilise une boucle foreach()
pour exécuter file_exists()
dans votre répertoire de thèmes.
Selon ce message sur les performances de file_exists()
, PHP met automatiquement en cache les résultats de la fonction pour améliorer les performances. Globalement, cela est considéré comme assez rapide.
Cet article sur les performances de foreach()
par rapport à for()
conclut qu’il ya généralement peu de différence perceptible entre les deux. Cependant, il ne traite pas directement des performances de foreach()
par lui-même. Pour cela, ce post sur le fonctionnement réel de foreach()
plonge profondément dans la fonction. Il dit ce qui suit.
1 .foreach()
peut être lent car il doit copier le tableau, mais dans la plupart des cas, il ne l’est généralement pas.
2 .foreach()
est généralement transparent dans son comportement.
3 .foreach()
peut se comporter de manière étrange si le tableau est modifié dans la boucle.
Il semblerait qu'un appel à get_template_part()
devrait être relativement rapide. Une boucle dans locate_template()
doit être utilisée et foreach()
semble être un aussi bon outil pour le travail que tout autre. file_exists()
mettra alors en cache ses résultats. Le seul contrôle direct sur les performances de get_template_part()
est le nombre de fichiers contenus dans le répertoire du modèle.
À moins que vous n'ayez des centaines de fichiers de gabarits à parcourir ou que vous passiez à un nombre d'égalité d'appels à get_template_part()
, les changements dans les performances de votre site devraient être négligeables.
3 ou 4 appels get_template_parts
ne vont pas avoir d’impact notable sur les performances. Vous devrez probablement entrer dans les centaines avant de percevoir tout problème (si alors).