Cet article présente principalement l'exemple de code de ThinkPHP pour implémenter la mise en cache statique et la mise en cache dynamique, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Mise en cache statique
Pour utiliser la fonction de mise en cache statique, vous devez activer le paramètre HTML_CACHE_ON et définir le fichier de règles de mise en cache statique à l'aide du paramètre de configuration HTML_CACHE_RULES.Définir des règles statiques
'HTML_CACHE_ON' => true, // 开启静态缓存 'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀 'HTML_CACHE_RULES' => array( // 定义静态缓存规则 // 定义格式1 数组方式 '静态地址' => array('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' => '静态规则', )
Adresse statique
Règles statiques de fonctionnement global'read'=>array('{id}',60)//定义所有的read操作的静态规则
'user:'=>array('User/{:action}_{id}','600')//定义所有的User控制器的静态规则
'blog:read'=>array('{id}',0)//参数为0表示永久缓存
'*'=>array('{$_SERVER.REQUEST_URI|md5}')//这个属于特殊情况下的使用,任何模块的操作都适用
Règles statiques
Les règles statiques sont utilisées pour définir le nom de le fichier statique à générer. La définition des règles statiques doit garantir qu'il n'y aura pas de conflits.{$_×××|function}//_GET、_REQUEST、_SERVER、_SESSION、_COOKIE {$_GET.name} {$_SERVER.REQUEST_URI|md5}
Copier le code Le code est le suivant :
{:module}/{:controller}_{:action}//{:module}, {: contrôleur} et {:action} représentent respectivement le nom du module actuel, le nom du contrôleur et le nom de l'opération.
{var|function}//{id}其实等效于 {$_GET.id}
{|function}//{|time},time函数获取时间后作为文件名称
'{id},{name|md5}' //在{}之外的字符作为字符串对待,如果包含有"/",会自动创建目录。 {:module}/{:action}_{id}//会在静态目录下面创建模块名称的子目录,然后写入操作名_id.shtml 文件。
Cache dynamique
[Cache de données de la méthode S]Initialisation du cache
S(array('type'=>'xcache','expire'=>60));
S('name',$value); S('name',$value,300);//缓存数据300秒 S('name',$value,array('type'=>'file','expire'=>300));//改变之前的缓存方式或者更多的参数 S(array('type'=>'xcache','length'=>100,'expire'=>60));//系统只会缓存最近的100条缓存数据。
$value = S('name');//如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值。
S('name',null);
$user = M('User'); $value = S('list'); if (empty($value)) { $list = $user->select(); S('list', $list, 3600); echo '这个是直接从数据库中读取的文件'; dump($list); } else { echo '这个是缓存文件'; dump($value); }
[Cache rapide]
Le système fournit également une méthode de cache rapide F pour des opérations plus rapides. Cependant, la méthode F n'a pas de période de validité. La méthode F peut prendre en charge différents types de stockage. S'il s'agit d'un type de fichier, il est enregistré par défaut dans le répertoire DATA_PATH. .F('data',$Data); F('data',$Data,TEMP_PATH);//快速缓存Data数据,保存到指定的目录 F('User/data',$Data);//F方法支持自动创建缓存子目录,在DATA_PATH目录下面缓存data数据,如果User子目录不存在,则自动创建。
$Data = F('data');
F('data',NULL);
[Cache de requêtes]
La fonction de cache de requêtes prend en charge toutes les bases de données et prend en charge toutes les méthodes de mise en cache et toutes les périodes de validité.$Model->cache(true)->where('status=1')->select();
$Model->cache('cache_name')->select();
$Model->cache(true,60,'xcache')->select();
$value = S('cache_name');
$Model->where($map)->cache('key',60)->find();
Cet article provient principalement de la documentation officielle. Si vous avez des questions, veuillez vous référer à la documentation officielle de ThinkPHP3.2 - Cache
Ce qui précède est l'intégralité du contenu de cet article, j'espère. cela sera utile à l’étude de chacun.
Recommandations associées :
Résumé des méthodes courantes de saut de page dans les compétences PHP_javascript
PHP Comment partager Session_node.js avec des applications développées avec NodeJs
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!