2010-01-27 5 views
0

J'ai une fonction d'analyseur de modèle qui charge le code html brut du modèle avec le nom donné et remplace les caractères génériques dedans (% DATE%, etc.). J'utiliserai le même modèle plus d'une fois pour certaines pages, par ex. un élément de menu, et ainsi le fichier html serait chargé en mémoire plus d'une fois.PHP - Worth fichiers de mise en cache dans un tableau?

Ainsi, un fichier serait lu plus d'une fois car la fonction ParseTemplate(name) est appelée plusieurs fois avec le même modèle.

Pour plus de clarté: Le même modèle va être chargé plus d'une fois dans une page.

Vaut-il la peine de stocker tous les fichiers modèles chargés dans un tableau afin qu'ils ne doivent pas être lus avec file_get_contents(); plus d'une fois?

+1

Pour la réponse "readfile" - ouais, d'accord ... – lamas

+0

Chargez-vous le même modèle plus d'une fois dans une seule page? –

+0

Hahaha ... J'ai eu exactement la même réaction. J'étais occupé à taper mes snarkies quand cette réponse a été supprimée. J'aurais quand même aimé son raisonnement - vous ne savez jamais ce que vous allez apprendre ... – prodigitalson

Répondre

1

Eh bien, si vous utilisez le même modèle (extrait je suppose) plus d'une fois dans une seule page, alors oui, enregistrez-le dans une variable et imprimez-le chaque fois que nécessaire après la substitution de caractères génériques.

+0

Ce à quoi je pensais, c'est si le "travail" de a) Vérifier si le fichier existe dans le tableau de cache et b) Mettre le fichier dans le cache et l'utilisation de la mémoire en vaut la peine. Et non, j'ai écrit le code moi-même. – lamas

+1

Eh bien le fait est que vous "mettrez le fichier dans le cache" de toute façon même si vous le chargez une seule fois: file_get_contents() retourne une chaîne, donc vous l'enregistrerez dans une variable. Donc, réutiliser ce var sera certainement plus rapide que de lire le même fichier encore et encore. –

0

Les variables PHP ne durent que le temps de la requête, sauf si vous utilisez la mémoire partagée. Vous devez baser votre méthode sur la quantité de mémoire que vous voulez utiliser avec celle-ci au lieu des processus httpd ou du cache de base de données.

+0

Merci, mais je connais les variables. Le même modèle sera requis plusieurs fois sur certaines pages, je veux savoir s'il vaut la peine de mettre son contenu dans un tableau au lieu de le charger encore et encore. Je vais essayer d'éditer ma réponse pour que ce que je veux dire soit plus clair – lamas