Maison développement back-end tutoriel php smarty局部缓存技术[源码分析]_PHP教程

smarty局部缓存技术[源码分析]_PHP教程

Jul 13, 2016 pm 05:41 PM
smarty 使用 分析 exister 培训课程 局部 引擎 技术 模板 源码 缓存

  之前一直使用其它的模板引擎,今天在听bkJia培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨一翻,要是有什么不对的地方,希望朋友跟贴回复。 大家一起共勉学习。 同时也感谢张老师,为像我们这样的PHP初学者提供一个非常优秀的学习平台。

  发现smarty是如此强大与神奇的一个东东,使我对它的好感不亚于对以前使用的模板引擎.

  由于我默认是开启smarty的缓存的,但是在些地方的数据是实时更新或者更新较快的,不宜缓存,这样,局部缓存便有用武之地了。

  1,insert 法

  定义一个函数显示时间的:

<ol class="dp-c">
<li class="alt"><span><span class="keyword">function</span><span> insert_get_current_time(){  </span></span></li>
<li>
<span>    </span><span class="vars">$timestamp</span><span>=</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$timestamp</span><span>)?time():</span><span class="vars">$timestamp</span><span>;  </span>
</li>
<li class="alt">
<span>    </span><span class="vars">$timeoffset</span><span>=(int) </span><span class="string">+8</span><span>;  </span>
</li>
<li>
<span>    </span><span class="keyword">return</span><span> </span><span class="vars">$ret</span><span>=</span><span class="func">gmdate</span><span>(</span><span class="string">"Y-n-j g:ia"</span><span>, </span><span class="vars">$timestamp</span><span> + </span><span class="vars">$timeoffset</span><span> * 3600);  </span>
</li>
<li class="alt"><span>} </span></li>
</ol>
Copier après la connexion

  然后在模板中:

 

<ol class="dp-c"><li class="alt"><span><span>{insert name=</span><span class="string">"get_current_time"</span><span>} </span></span></li></ol>
Copier après la connexion

  这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。

  这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。

  2,动态block 法

 

<ol class="dp-c">
<li class="alt"><span><span class="comment">//部分缓存 </span><span> </span></span></li>
<li>
<span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>)  </span>
</li>
<li class="alt"><span> {  </span></li>
<li>
<span>    </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>;  </span>
</li>
<li class="alt"><span>}  </span></li>
<li>
<span class="vars">$smarty</span><span>->register_block(</span><span class="string">nocache</span><span>, </span><span class="string">smarty_block_nocache</span><span>, false); </span>
</li>
</ol>
Copier après la connexion

在模板中:

 

<ol class="dp-c">
<li class="alt"><span><span>{nocache}  </span></span></li>
<li>
<span>{</span><span class="vars">$smarty</span><span>.now}  </span>
</li>
<li class="alt"><span>{/nocache} </span></li>
</ol>
Copier après la connexion

\

  这样每次刷新页面,显示的时间都是不同的。

  3,插件block 法

  在Smarty/plugins目录下建一个文件

  block.nocache.php 内容如下:

 

<ol class="dp-c">
<li class="alt"><span><span><?php    </span></span></span></li>
<li>
<span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li>
<span>      </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>;   </span>
</li>
<li class="alt"><span>}    </span></li>
<li><span>?> </span></li>
</ol>
Copier après la connexion

  这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486092.htmlTechArticle之前一直使用其它的模板引擎,今天在听PHP100培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨...
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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Comment utiliser l'application Baidu Netdisk Comment utiliser l'application Baidu Netdisk Mar 27, 2024 pm 06:46 PM

Le stockage cloud est devenu aujourd’hui un élément indispensable de notre vie quotidienne et de notre travail. En tant que l'un des principaux services de stockage cloud en Chine, Baidu Netdisk a gagné la faveur d'un grand nombre d'utilisateurs grâce à ses puissantes fonctions de stockage, sa vitesse de transmission efficace et son expérience de fonctionnement pratique. Et que vous souhaitiez sauvegarder des fichiers importants, partager des informations, regarder des vidéos en ligne ou écouter de la musique, Baidu Cloud Disk peut répondre à vos besoins. Cependant, de nombreux utilisateurs peuvent ne pas comprendre l'utilisation spécifique de l'application Baidu Netdisk, ce didacticiel vous présentera donc en détail comment utiliser l'application Baidu Netdisk. Si vous êtes toujours confus, veuillez suivre cet article pour en savoir plus ! Comment utiliser Baidu Cloud Network Disk : 1. Installation Tout d'abord, lors du téléchargement et de l'installation du logiciel Baidu Cloud, veuillez sélectionner l'option d'installation personnalisée.

Comment utiliser NetEase Mailbox Master Comment utiliser NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox, en tant qu'adresse e-mail largement utilisée par les internautes chinois, a toujours gagné la confiance des utilisateurs grâce à ses services stables et efficaces. NetEase Mailbox Master est un logiciel de messagerie spécialement créé pour les utilisateurs de téléphones mobiles. Il simplifie grandement le processus d'envoi et de réception d'e-mails et rend le traitement de nos e-mails plus pratique. Alors comment utiliser NetEase Mailbox Master, et quelles sont ses fonctions spécifiques Ci-dessous, l'éditeur de ce site vous donnera une introduction détaillée, en espérant vous aider ! Tout d’abord, vous pouvez rechercher et télécharger l’application NetEase Mailbox Master dans la boutique d’applications mobiles. Recherchez « NetEase Mailbox Master » dans l'App Store ou Baidu Mobile Assistant, puis suivez les instructions pour l'installer. Une fois le téléchargement et l'installation terminés, nous ouvrons le compte de messagerie NetEase et nous connectons. L'interface de connexion est la suivante

Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Apr 26, 2024 am 09:40 AM

MetaMask (également appelé Little Fox Wallet en chinois) est un logiciel de portefeuille de cryptage gratuit et bien accueilli. Actuellement, BTCC prend en charge la liaison au portefeuille MetaMask. Après la liaison, vous pouvez utiliser le portefeuille MetaMask pour vous connecter rapidement, stocker de la valeur, acheter des pièces, etc., et vous pouvez également obtenir un bonus d'essai de 20 USDT pour la première liaison. Dans le didacticiel du portefeuille BTCCMetaMask, nous présenterons en détail comment enregistrer et utiliser MetaMask, ainsi que comment lier et utiliser le portefeuille Little Fox dans BTCC. Qu'est-ce que le portefeuille MetaMask ? Avec plus de 30 millions d’utilisateurs, MetaMask Little Fox Wallet est aujourd’hui l’un des portefeuilles de crypto-monnaie les plus populaires. Son utilisation est gratuite et peut être installée sur le réseau en tant qu'extension

Comment utiliser l'application Xiaomi Auto Comment utiliser l'application Xiaomi Auto Apr 01, 2024 pm 09:19 PM

Le logiciel de voiture Xiaomi fournit des fonctions de contrôle de voiture à distance, permettant aux utilisateurs de contrôler le véhicule à distance via des téléphones mobiles ou des ordinateurs, comme l'ouverture et la fermeture des portes et fenêtres du véhicule, le démarrage du moteur, le contrôle de la climatisation et du système audio du véhicule, etc. l'utilisation et le contenu de ce logiciel, découvrons-le ensemble. Liste complète des fonctions et méthodes d'utilisation de l'application Xiaomi Auto 1. L'application Xiaomi Auto a été lancée sur l'AppStore d'Apple le 25 mars et peut désormais être téléchargée depuis l'App Store sur les téléphones Android. Achat de voiture : découvrez les principaux points forts et les paramètres techniques ; de Xiaomi Auto, et prenez rendez-vous pour un essai routier, configurez et commandez votre voiture Xiaomi, et prenez en charge le traitement en ligne des tâches de récupération de voiture. 3. Communauté : comprenez les informations de la marque Xiaomi Auto, échangez votre expérience automobile et partagez une vie de voiture merveilleuse. 4. Contrôle de la voiture : le téléphone mobile est la télécommande, la télécommande, la sécurité en temps réel, facile ;

Mécanisme de mise en cache et pratique d'application dans le développement PHP Mécanisme de mise en cache et pratique d'application dans le développement PHP May 09, 2024 pm 01:30 PM

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

Effets de la spécialisation des modèles C++ sur la surcharge et la réécriture des fonctions Effets de la spécialisation des modèles C++ sur la surcharge et la réécriture des fonctions Apr 20, 2024 am 09:09 AM

Les spécialisations de modèles C++ affectent la surcharge et la réécriture des fonctions : Surcharge de fonctions : les versions spécialisées peuvent fournir différentes implémentations d'un type spécifique, affectant ainsi les fonctions que le compilateur choisit d'appeler. Remplacement de fonction : la version spécialisée dans la classe dérivée remplacera la fonction modèle dans la classe de base, affectant le comportement de l'objet de classe dérivée lors de l'appel de la fonction.

Plus qu'une simple gaussienne 3D ! Dernier aperçu des techniques de reconstruction 3D de pointe Plus qu'une simple gaussienne 3D ! Dernier aperçu des techniques de reconstruction 3D de pointe Jun 02, 2024 pm 06:57 PM

Écrit ci-dessus & La compréhension personnelle de l'auteur est que la reconstruction 3D basée sur l'image est une tâche difficile qui implique de déduire la forme 3D d'un objet ou d'une scène à partir d'un ensemble d'images d'entrée. Les méthodes basées sur l’apprentissage ont attiré l’attention pour leur capacité à estimer directement des formes 3D. Cet article de synthèse se concentre sur les techniques de reconstruction 3D de pointe, notamment la génération de nouvelles vues inédites. Un aperçu des développements récents dans les méthodes d'éclaboussure gaussienne est fourni, y compris les types d'entrée, les structures de modèle, les représentations de sortie et les stratégies de formation. Les défis non résolus et les orientations futures sont également discutés. Compte tenu des progrès rapides dans ce domaine et des nombreuses opportunités d’améliorer les méthodes de reconstruction 3D, un examen approfondi de l’algorithme semble crucial. Par conséquent, cette étude fournit un aperçu complet des progrès récents en matière de diffusion gaussienne. (Faites glisser votre pouce vers le haut

Revoir! Fusion profonde de modèles (LLM/modèle de base/apprentissage fédéré/mise au point, etc.) Revoir! Fusion profonde de modèles (LLM/modèle de base/apprentissage fédéré/mise au point, etc.) Apr 18, 2024 pm 09:43 PM

Le 23 septembre, l'article « DeepModelFusion:ASurvey » a été publié par l'Université nationale de technologie de la défense, JD.com et l'Institut de technologie de Pékin. La fusion/fusion de modèles profonds est une technologie émergente qui combine les paramètres ou les prédictions de plusieurs modèles d'apprentissage profond en un seul modèle. Il combine les capacités de différents modèles pour compenser les biais et les erreurs des modèles individuels pour de meilleures performances. La fusion profonde de modèles sur des modèles d'apprentissage profond à grande échelle (tels que le LLM et les modèles de base) est confrontée à certains défis, notamment un coût de calcul élevé, un espace de paramètres de grande dimension, l'interférence entre différents modèles hétérogènes, etc. Cet article divise les méthodes de fusion de modèles profonds existantes en quatre catégories : (1) « Connexion de modèles », qui relie les solutions dans l'espace de poids via un chemin de réduction des pertes pour obtenir une meilleure fusion de modèles initiale.

See all articles