国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table of Contents
Detailed explanation of the caching mechanism of Smarty template engine, detailed explanation of smarty template engine
Home Backend Development PHP Tutorial Detailed explanation of smarty template engine caching mechanism, detailed explanation of smarty template engine_PHP tutorial

Detailed explanation of smarty template engine caching mechanism, detailed explanation of smarty template engine_PHP tutorial

Jul 12, 2016 am 08:50 AM
smarty template template engine cache

Detailed explanation of the caching mechanism of Smarty template engine, detailed explanation of smarty template engine

This article describes the caching mechanism of Smarty template engine with examples. Share it with everyone for your reference, the details are as follows:

First of all, let’s talk about smarty caching and compilation. These are two different concepts. Compilation is enabled by default, while the caching mechanism needs to be turned on manually. Smarty-compiled files are still PHP files, so they are still compiled when executed. , if it involves a database, you still have to access the database, so the overhead is not small, so smart caching is needed to solve it!

1. Enable global cache

$smarty->cache_dir = "/caches/"; //緩存目錄
$smarty->caching = true; //開啟緩存,為flase的時侯緩存無效
$smarty->cache_lifetime = 3600; //緩存時間

2. One page uses multiple caches

For example: an article template page will generate multiple article pages, which are of course cached into many pages. It is very simple to implement. Just set the second parameter in the display() method and specify a unique identifier. The following php code:

$smarty->display('index.tpl',$_GET["article_id"]);

As above, cache an article page through the id of the article as the second parameter.

3. Reduce overhead for caching

In other words, cached pages do not need to be processed by the database, and can be judged through the is_cached() method!

if(!$smarty->is_cached('index.tpl')){
 //調用數據庫
}
$smarty->display('index.tpl');

4. Clear cache

Generally, caching is not enabled during the development process because the output results remain unchanged during the cache time. However, enabling caching during the application process can greatly improve web performance. The method to clear the cache is as follows:

clear_all_cache();//清除所有緩存
clear_cache('index.tpl');//清除index.tpl的緩存
clear_cache('index.tpl',cache_id);//清除指定id的緩存

5. Turn off local cache

If part of a page is cached and another part does not need to be cached, you can do this. For example, to display the user's login name, you need to turn off the cache. Smarty provides the following three solutions:

(1) Part of the template using insert is not cached

Define a processing function to be used by the insert tag. The function name format is: insert_xx (array $params, object &$smarty) where xx is the name of insert. That is to say, if the function you define is insert_abc, then The method used in the template is {insert name=abc}

Parameters are passed in through $params

It can also be made into an insert plug-in. The file name is: insert.xx.php, the function is named: smarty_insert_aa($params,&$smarty), and the definition of xx is the same as above

(2)$smarty->register_block($params, &$smarty) prevents a certain block of the entire page from being cached

Define a block:

smarty_block_name($params,$content, &$smarty){return $content;} 
//name表示區(qū)域名

Registration block:

$smarty->register_block(name, smarty_block_name, false);
//第三參數false表示該區(qū)域不被緩存

Template writing:

{name}內容 {/name}

is written as block plug-in:

Step one: Define a plug-in function: block.cacheless.php and place it in smarty’s plugins directory

The content of block.cacheless.php is as follows:

<&#63;php
function smarty_block_cacheless($param, $content, &$smarty) {
return $content;
}
&#63;>

Step 2: Write programs and templates

Sample program: testCacheLess.php

<&#63;php
include(Smarty.class.php);
$smarty = new Smarty;
$smarty->caching=true;
$smarty->cache_lifetime = 6;
$smarty->display(cache.tpl);
&#63;>

Template used: cache.tpl

已經緩存的:{$smarty.now}<br>
{cacheless}
沒有緩存的:{$smarty.now}
{/cacheless}

Run it now and find that it doesn’t work. Both lines of content are cached

Step 3: Rewrite Smarty_Compiler.class.php(Note: This file is very important, please back it up first to restore it if necessary)

Find:
Copy code The code is as follows: $this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, true);

was changed to:

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);

You can also directly change the last parameter of the original sentence to false, which means turning off the default cache.

(3) Use register_function to prevent the plug-in from outputting from the cache

index.tpl:

<div>{current_time}{/div}
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('current_time','smarty_function_current_time',false);
if(!$smarty->is_cached()){
  .......
}
$smarty->display('index.tpl');

Note:

Define a function, the function name format is: smarty_type_name($params, &$smarty)
type is function

name is the user-defined label name, here it is {current_time}

The two parameters are required, even if they are not used in the function, they must be written. The functions of the two parameters are the same as above.

Readers who are interested in more Smarty-related content can check out the special topics on this site: "Basic Tutorial for Getting Started with Smarty Templates", "Summary of PHP Template Technology", "Summary of PHP Database Operation Skills Based on PDO", "PHP Operations and Operators" Usage summary", "PHP network programming skills summary", "PHP basic syntax introductory tutorial", "php object-oriented programming introductory tutorial", "php string (string) usage summary", "php mysql database operation introductory tutorial" and "Summary of Common Database Operation Skills in PHP"

I hope this article will be helpful to everyone’s PHP program design based on smarty templates.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1133106.htmlTechArticleDetailed explanation of Smarty template engine caching mechanism, Detailed explanation of smarty template engine. This article describes the Smarty template engine caching mechanism with examples. Share it with everyone for your reference, the details are as follows: First of all, let’s talk about s...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to view and refresh dns cache in Linux How to view and refresh dns cache in Linux Mar 07, 2024 am 08:43 AM

DNS (DomainNameSystem) is a system used on the Internet to convert domain names into corresponding IP addresses. In Linux systems, DNS caching is a mechanism that stores the mapping relationship between domain names and IP addresses locally, which can increase the speed of domain name resolution and reduce the burden on the DNS server. DNS caching allows the system to quickly retrieve the IP address when subsequently accessing the same domain name without having to issue a query request to the DNS server each time, thereby improving network performance and efficiency. This article will discuss with you how to view and refresh the DNS cache on Linux, as well as related details and sample code. Importance of DNS Caching In Linux systems, DNS caching plays a key role. its existence

Advanced Usage of PHP APCu: Unlocking the Hidden Power Advanced Usage of PHP APCu: Unlocking the Hidden Power Mar 01, 2024 pm 09:10 PM

PHPAPCu (replacement of php cache) is an opcode cache and data cache module that accelerates PHP applications. Understanding its advanced features is crucial to utilizing its full potential. 1. Batch operation: APCu provides a batch operation method that can process a large number of key-value pairs at the same time. This is useful for large-scale cache clearing or updates. //Get cache keys in batches $values=apcu_fetch(["key1","key2","key3"]); //Clear cache keys in batches apcu_delete(["key1","key2","key3"]);2 .Set cache expiration time: APCu allows you to set an expiration time for cache items so that they automatically expire after a specified time.

Spring Boot performance optimization tips: create applications as fast as the wind Spring Boot performance optimization tips: create applications as fast as the wind Feb 25, 2024 pm 01:01 PM

SpringBoot is a popular Java framework known for its ease of use and rapid development. However, as the complexity of the application increases, performance issues can become a bottleneck. In order to help you create a springBoot application as fast as the wind, this article will share some practical performance optimization tips. Optimize startup time Application startup time is one of the key factors of user experience. SpringBoot provides several ways to optimize startup time, such as using caching, reducing log output, and optimizing classpath scanning. You can do this by setting spring.main.lazy-initialization in the application.properties file

The relationship between CPU, memory and cache is explained in detail! The relationship between CPU, memory and cache is explained in detail! Mar 07, 2024 am 08:30 AM

There is a close interaction between the CPU (central processing unit), memory (random access memory), and cache, which together form a critical component of a computer system. The coordination between them ensures the normal operation and efficient performance of the computer. As the brain of the computer, the CPU is responsible for executing various instructions and data processing; the memory is used to temporarily store data and programs, providing fast read and write access speeds; and the cache plays a buffering role, speeding up data access speed and improving The computer's CPU is the core component of the computer and is responsible for executing various instructions, arithmetic operations, and logical operations. It is called the "brain" of the computer and plays an important role in processing data and performing tasks. Memory is an important storage device in a computer.

Getting Started with PHP APCu: Speed ??Up Your Applications Getting Started with PHP APCu: Speed ??Up Your Applications Mar 02, 2024 am 08:20 AM

PHP's User Cache (APCu) is an in-memory caching system for storing and retrieving data that can significantly improve application performance. This article will guide you through using APCu to accelerate your applications. What is APCu? APCu is a php extension that allows you to store data in memory. This is much faster than retrieving data from disk or database. It is commonly used to cache database query results, configuration settings, and other data that need to be accessed quickly. Installing APCu Installing APCu on your server requires the following steps: //For Debian/ubuntu systems sudoapt-getinstallphp-apcu//For Centos/RedHat systems sudoyumi

How to save video files from browser cache to local How to save video files from browser cache to local Feb 23, 2024 pm 06:45 PM

How to Export Browser Cache Videos With the rapid development of the Internet, videos have become an indispensable part of people's daily lives. When browsing the web, we often encounter video content that we want to save or share, but sometimes we cannot find the source of the video files because they may only exist in the browser's cache. So, how do you export videos from your browser cache? This article will introduce you to several common methods. First, we need to clarify a concept, namely browser cache. The browser cache is used by the browser to improve user experience.

How to add PPT mask How to add PPT mask Mar 20, 2024 pm 12:28 PM

Regarding PPT masking, many people must be unfamiliar with it. Most people do not understand it thoroughly when making PPT, but just make it up to make what they like. Therefore, many people do not know what PPT masking means, nor do they understand it. I know what this mask does, and I don’t even know that it can make the picture less monotonous. Friends who want to learn, come and learn, and add some PPT masks to your PPT pictures. Make it less monotonous. So, how to add a PPT mask? Please read below. 1. First we open PPT, select a blank picture, then right-click [Set Background Format] and select a solid color. 2. Click [Insert], word art, enter the word 3. Click [Insert], click [Shape]

Effects of C++ template specialization on function overloading and overriding Effects of C++ template specialization on function overloading and overriding Apr 20, 2024 am 09:09 AM

C++ template specializations affect function overloading and rewriting: Function overloading: Specialized versions can provide different implementations of a specific type, thus affecting the functions the compiler chooses to call. Function overriding: The specialized version in the derived class will override the template function in the base class, affecting the behavior of the derived class object when calling the function.

See all articles