1. Caching principle:
IE: Save resource files locally
Smarty: Save cache to server
Compile < Cache < Static
2. Why use caching technology
1. Improve website access speed
2. Reduce the pressure on the web server
3. Reduce the pressure on the database server
3. Set cache
1. In smarty, setting the cache is mainly through the following lines of code:
l $smarty->setCacheDir($cache_dir)
Set cache directory
Cache files generated in the future will be automatically placed in this directory
l $smarty->caching=true
Enable caching mechanism
As long as you use caching technology, the caching mechanism must be enabled before the display method is called (do not enable it to clear the cache)
l $smarty->cach_lifetime=3600
Set cache validity time (life cycle),
The default is 3600 seconds (one hour) and can be adjusted appropriately
2. Code part:
Program code:
Template code:
After running the above program, we found that two folders were automatically generated in the current directory:
Where templates_c and cache represent the compilation and cache directories respectively, and they are automatically created
However, it is strongly recommended that you do not rely too much on the automatic creation function, because in some operating systems, there is no creation permission by default, so it is recommended that we create these two directories manually before running
3. Observe the differences between these two files:
Compiled file:
Cache files:
Through observation, we found that in the compiled file, the value of the template variable is dynamically read through the PHP program each time
In the cache file, the values of these two variables are written directly to the file
4. Caching refers to the caching of templates
We can try to create other php programs and let these programs display the above template again, and find that these programs will only directly run the cache files generated by the above programs
5. Working principle of Smarty cache:
6. Two related attributes
$smarty->compile_check
The default value is true, which means that every time it is executed, it will check whether the template has changed. If it changes, it will be read again and the compiled and cache files will be generated. However, after a project goes online, the template will basically not be changed or moved infrequently. It is judged that it will affect system performance every time. Therefore, after the project goes online, it is recommended that you turn off this option (set to false).
$smarty->force_compile
The default value is false, which means that every time it is executed, it will check whether the cache has expired. If it has not expired, the contents of the cache file will be used directly. However, when a project is developed, caching will affect the programmer's most direct judgment of the program and the observation of the latest data. It is recommended that you set this option to true, which means that the compiled and cache files will be regenerated each time it is run.
4. Check cache
$smarty->isCached(“tpl.tpl”)
Check if a template has a cached file
Practical application:
5. Clear cache
For example, in a mall system, the price of this product is 1000.00. Now the mall has a discount of 30% off. If caching is used, the product price will still be the original price. At this time we need to delete the previous cache files.
l $smarty->clearCache(“tpl.tpl”)
Clear the cache file of a template
l $smarty->clearAllCache()
Clear cache files for all templates
If a product information changes, the cache file of the product needs to be regenerated
Generally, to modify data, you need to regenerate the cache file (the original cache file must be deleted).