Maison développement back-end tutoriel php Explication détaillée de la façon dont le moteur de modèles Smarty met en cache

Explication détaillée de la façon dont le moteur de modèles Smarty met en cache

Jan 02, 2018 am 09:58 AM
smarty 如何 conduire

Cet article présente principalement le mécanisme de mise en cache du moteur de modèles Smarty et analyse les principes du mécanisme de mise en cache du moteur de modèles Smarty sous forme d'exemples, comment l'activer et l'utiliser, et les précautions associées. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.

Les détails sont les suivants :

Tout d'abord, parlons de la mise en cache intelligente et de la compilation. Ce sont deux concepts différents. La compilation est activée par défaut, tandis que le mécanisme de mise en cache doit être activé. dessus manuellement. Smarty compilé Le fichier est toujours un fichier PHP, il est donc toujours compilé lors de son exécution. S'il implique une base de données, il doit toujours accéder à la base de données, donc la surcharge n'est pas faible, une mise en cache intelligente est donc nécessaire pour le résoudre. !

1. Activer le cache global

$smarty->cache_dir = "/caches/"; //缓存目录
$smarty->caching = true; //开启缓存,为flase的时侯缓存无效
$smarty->cache_lifetime = 3600; //缓存时间
Copier après la connexion

2. Utiliser plusieurs caches pour une page

Par exemple : un. article La page modèle générera plusieurs pages d'article, qui sont bien sûr mises en cache dans plusieurs pages. C'est très simple à implémenter. Il suffit de définir le deuxième paramètre dans la méthode display() et de spécifier un identifiant unique. Le code php suivant :

$smarty->display('index.tpl',$_GET["article_id"]);
Copier après la connexion

Comme ci-dessus, mettez en cache une page d'article via le deuxième paramètre de l'identifiant de l'article.

3. Réduisez le coût de la mise en cache

En d'autres termes, les pages mises en cache n'ont pas besoin d'être traitées par la base de données et peuvent être jugées par is_cached(). méthode!

if(!$smarty->is_cached('index.tpl')){
 //调用数据库
}
$smarty->display('index.tpl');
Copier après la connexion

4. Vider le cache

Généralement, le cache n'est pas activé pendant le processus de développement, car le résultat de sortie ne change pas pendant la durée du cache. , mais pendant le processus de candidature, l'activation du cache peut améliorer considérablement les performances Web. La méthode pour vider le cache est la suivante :

clear_all_cache();//清除所有缓存
clear_cache('index.tpl');//清除index.tpl的缓存
clear_cache('index.tpl',cache_id);//清除指定id的缓存
Copier après la connexion

5. 🎜>Si une partie d'une page est mise en cache et une autre partie est mise en cache, vous pouvez le faire sans mise en cache. Par exemple, pour afficher le nom de connexion de l'utilisateur, vous devez désactiver le cache. Smarty propose les trois solutions suivantes : .

(1) Utiliser une partie du modèle d'insertion à ne pas mettre en cache

Définir une fonction de traitement à utiliser par la balise d'insertion Le format du nom de la fonction est : insert_xx (array $params, object &$smarty. ) où xx est le nom de l'insertion. C'est-à-dire que si la fonction que vous définissez est insert_abc, alors la méthode utilisée dans le modèle est {insert name=abc>

. params

. Il peut également être transformé en plug-in d'insertion. Le nom du fichier est : insert.xx.php et la fonction est nommée :smarty_insert_aa($params, &$smarty), la définition xx est la. comme ci-dessus

(2) $smarty->register_block($params, &$smarty) empêche la mise en cache d'un certain bloc de la page entière

Définir un bloc :

Bloc de registre :

smarty_block_name($params,$content, &$smarty){return $content;} 
//name表示区域名
Copier après la connexion

Écriture du modèle :

$smarty->register_block(name, smarty_block_name, false);
//第三参数false表示该区域不被缓存
Copier après la connexion

Écrit sous forme de plug-in de bloc :
{name}内容 {/name}
Copier après la connexion

Étape 1 : Définir une fonction de plug-in : block.cacheless.php, et placez-la dans le répertoire plugins de smarty

Le contenu de block.cacheless.php est le suivant :

Étape 2 : Écrire des programmes et des modèles
<?php
function smarty_block_cacheless($param, $content, &$smarty) {
return $content;
}
?>
Copier après la connexion

Exemple de programme : testCacheLess.php

Modèle utilisé : tpl

<?php
include(Smarty.class.php);
$smarty = new Smarty;
$smarty->caching=true;
$smarty->cache_lifetime = 6;
$smarty->display(cache.tpl);
?>
Copier après la connexion

Exécutez-le maintenant et constatez que cela ne fonctionne pas. Les deux lignes de contenu sont mises en cache

已经缓存的:{$smarty.now}<br>
{cacheless}
没有缓存的:{$smarty.now}
{/cacheless}
Copier après la connexion

Étape 3 : réécrivez Smarty_Compiler.class.php

(

Remarque : Ce fichier est très important, veuillez d'abord le sauvegarder pour le restaurer si nécessaire)Rechercher :


Copier le code

Code comme suit :

$this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, true);

est modifié en :

Vous pouvez également changer directement le dernier paramètre de la phrase originale en false, ce qui signifie désactiver le cache par défaut.

if($tag_command == cacheless) $this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, false);
else $this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, true);
Copier après la connexion
(3) Utilisez register_function pour empêcher le plug-in de sortir du cache

index.tpl :

Annotation :

<p>{current_time}{/p}
index.php:
function smarty_function_current_time($params, &$smarty){
  return date("Y-m-d H:m:s");
}
$smarty=new smarty();
$smarty->caching = true;
$smarty->register_function(&#39;current_time&#39;,&#39;smarty_function_current_time&#39;,false);
if(!$smarty->is_cached()){
  .......
}
$smarty->display(&#39;index.tpl&#39;);
Copier après la connexion
Définir une fonction, nom de fonction Le format est :

smarty_type_name($params, &$smarty)

le type est une fonction
name est le nom de l'étiquette défini par l'utilisateur, ici c'est {current_time >

Les deux paramètres sont obligatoires, même s'ils ne sont pas utilisés dans la fonction, ils doivent être écrits. Les fonctions des deux paramètres sont les mêmes que ci-dessus.

Recommandations associées :

Analyse simple Yii2 à l'aide du cache

Construire une instance de moteur de modèle pour créer un framework PHP

Quels sont les opérateurs de modèles pour php smarty ? Comment utiliser les opérateurs ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Analyse RFM à l'aide de Python Analyse RFM à l'aide de Python Sep 03, 2023 pm 12:45 PM

Python est un langage de programmation polyvalent populaire dans le domaine de l'analyse de données et de l'apprentissage automatique. Sa simplicité, sa lisibilité et sa riche bibliothèque le rendent idéal pour gérer des tâches de données complexes. L'une de ces applications puissantes est l'analyse RFM, une technique utilisée en marketing pour segmenter les clients en fonction de leur comportement d'achat. Dans ce didacticiel, nous vous guiderons tout au long du processus de mise en œuvre de l'analyse RFM à l'aide de Python. Nous commencerons par expliquer le concept d’analyse RFM et son importance en marketing. Nous plongerons ensuite progressivement dans les aspects pratiques de l’analyse RFM à l’aide de Python. Dans la prochaine partie de l'article, nous montrerons comment calculer un score RFM pour chaque client à l'aide de Python, en tenant compte des valeurs de récence, de fréquence et

'Black Myth: Wukong ' La version Xbox a été retardée en raison d'une 'fuite de mémoire', l'optimisation de la version PS5 est en cours 'Black Myth: Wukong ' La version Xbox a été retardée en raison d'une 'fuite de mémoire', l'optimisation de la version PS5 est en cours Aug 27, 2024 pm 03:38 PM

Récemment, "Black Myth : Wukong" a attiré une énorme attention dans le monde entier. Le nombre d'utilisateurs en ligne simultanés sur chaque plateforme a atteint un nouveau sommet. Ce jeu a connu un grand succès commercial sur plusieurs plateformes. La version Xbox de "Black Myth : Wukong" a été reportée. Bien que "Black Myth : Wukong" soit sorti sur les plateformes PC et PS5, il n'y a pas eu de nouvelles définitives concernant sa version Xbox. Il est entendu que le responsable a confirmé que "Black Myth : Wukong" serait lancé sur la plateforme Xbox. Cependant, la date précise de lancement n’a pas encore été annoncée. Il a été récemment rapporté que le retard de la version Xbox était dû à des problèmes techniques. Selon un blogueur concerné, il a appris grâce aux communications avec les développeurs et les « initiés Xbox » lors de la Gamescom que la version Xbox de « Black Myth : Wukong » existe.

Existe-t-il un avenir pour l'emploi en pharmacie clinique à l'Université médicale de Harbin ? (Quelles sont les perspectives d'emploi pour la pharmacie clinique à l'Université médicale de Harbin ?) Existe-t-il un avenir pour l'emploi en pharmacie clinique à l'Université médicale de Harbin ? (Quelles sont les perspectives d'emploi pour la pharmacie clinique à l'Université médicale de Harbin ?) Jan 02, 2024 pm 08:54 PM

Quelles sont les perspectives d'emploi de la pharmacie clinique à l'Université médicale de Harbin ? Bien que la situation nationale de l'emploi ne soit pas optimiste, les diplômés en pharmacie ont toujours de bonnes perspectives d'emploi. Dans l'ensemble, l'offre de diplômés en pharmacie est inférieure à la demande. Les sociétés pharmaceutiques et les usines pharmaceutiques sont les principaux canaux d'absorption de ces diplômés. La demande de talents dans l'industrie pharmaceutique augmente également de manière constante. Selon les rapports, ces dernières années, le rapport offre-demande pour les étudiants diplômés dans des domaines tels que les préparations pharmaceutiques et la chimie médicinale naturelle a même atteint 1:10. Direction d'emploi de la majeure en pharmacie clinique : Après l'obtention de leur diplôme, les étudiants se spécialisant en médecine clinique peuvent s'engager dans le traitement médical, la prévention, la recherche médicale, etc. dans les unités médicales et sanitaires, la recherche médicale et d'autres départements. Postes d'emploi : Représentant médical, représentant commercial pharmaceutique, représentant commercial, directeur commercial, directeur régional des ventes, responsable des investissements, chef de produit, spécialiste produit, infirmière

Une étude préliminaire sur Smarty, le moteur de template en PHP Une étude préliminaire sur Smarty, le moteur de template en PHP May 11, 2023 pm 05:15 PM

De nos jours, le développement de sites Web est indissociable d’un important moteur de modèles de composants. Un moteur de modèles fait référence à un outil qui combine des modèles de page et des données pour générer du code HTML avec un format spécifique. Dans divers frameworks de développement de sites Web, le moteur de modèles est un composant essentiel, car le moteur de modèles peut réduire considérablement la duplication de code et améliorer la dynamique de la page. L'un des moteurs de modèles les plus courants et les plus populaires est Smarty. Smarty est un DSL (DomainSpecif

Comment utiliser PHP et Smarty pour réaliser un développement de séparation front-end et back-end Comment utiliser PHP et Smarty pour réaliser un développement de séparation front-end et back-end Jun 25, 2023 pm 01:46 PM

Dans le développement Web moderne, la séparation du front-end et du back-end est devenue une tendance très populaire, qui permet aux développeurs de mieux organiser les projets et d'améliorer l'efficacité du développement de projets. PHP et Smarty sont deux technologies très couramment utilisées, qui peuvent être utilisées pour réaliser un développement de séparation front-end et back-end. Cet article explique comment utiliser PHP et Smarty pour réaliser un développement de séparation front-end et back-end. Qu'est-ce que le développement de séparation front-end et back-end ? Dans le développement web traditionnel, le front-end est principalement responsable de la présentation de la page et de la logique d'interaction avec le back-end. Le backend est principalement responsable de l’activité

Comment utiliser le moteur de modèles Smarty dans le développement PHP Comment utiliser le moteur de modèles Smarty dans le développement PHP Jun 27, 2023 pm 01:28 PM

En tant que développeur PHP, utiliser un moteur de modèles est un choix naturel. Smarty est un moteur de modèles populaire qui permet de séparer HTML/CSS/JavaScript du code PHP, permettant ainsi aux développeurs de mieux organiser et gérer les projets. Dans cet article, nous apprendrons comment utiliser le moteur de modèles Smarty lors du développement PHP. 1. Installer Smarty Avant, il faut installer Smarty. Dans cet article, nous utiliserons Composer pour installer

Comment utiliser PHP et le moteur de template Smarty Comment utiliser PHP et le moteur de template Smarty May 11, 2023 pm 03:33 PM

PHP est un puissant langage de script côté serveur qui peut être utilisé pour développer des applications Web. Au début du développement Web, les programmeurs utilisaient beaucoup de code HTML et JavaScript pour développer des applications Web. Cependant, cette approche est difficile à maintenir et à gérer car le code HTML et JavaScript peut devenir très complexe. Pour résoudre ce problème, le moteur de modèles Smarty a été créé. Smarty est un moteur de template développé basé sur PHP pour gérer et générer des W

Comment télécharger rapidement l'image Win10 Comment télécharger rapidement l'image Win10 Jan 07, 2024 am 11:33 AM

Récemment, des amis ont expliqué comment télécharger des fichiers image Win10. Étant donné qu'il existe de nombreux fichiers image sur le marché, que dois-je faire si je souhaite trouver un fichier standard à télécharger ? Aujourd'hui, l'éditeur vous a apporté le lien pour télécharger l'image et les étapes détaillées de la solution. Examinons-les ensemble. Téléchargement rapide de l'image Win10 et lien de téléchargement du didacticiel d'installation >>> Accueil système Image Ghostwin101909 version 64 bits v2019.11<<<>>>Image Win10 64 bits v2019.07<<<>>>Image Win10 32 bits v2019. 07<< <1. Rechercher sur Internet

See all articles