gpt4 book ai didi

php - CakePHP 服务缓存 Controller 操作,关于用户代理

转载 作者:行者123 更新时间:2023-12-04 05:17:55 26 4
gpt4 key购买 nike

我可以使用 CacheHelper 在我的 CakePHP 2 应用程序中缓存 Controller 操作.这个助手让我可以选择缓存持续时间、页面的“nocache”部分等。

但是是否可以为访问者的用户代理提供缓存操作。例如,我计划向爬虫/机器人显示缓存页面,但如果访问者不是机器人,则构建页面。我不想选择页面的哪些部分将被缓存/不缓存。将页面作为一个整体。

最佳答案

我认为这对你有用:

假设您使用的是最新版本的 cakephp,请将其添加到您的 core.php
波纹管到您配置 Cache.check 的行

示例和代码:

/**
* Enable cache checking.
*
* If set to true, for view caching you must still use the controller
* public $cacheAction inside your controllers to define caching settings.
* You can either set it controller-wide by setting public $cacheAction = true,
* or in each action using $this->cacheAction = true.
*
*/
// Configure::write('Cache.check', true);
$UAs = array(
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11'
);

if (in_array(env('HTTP_USER_AGENT'), $UAs)) {
define('USE_CACHE', '1 hour');
Configure::write('Cache.check', true);
} else {
define('USE_CACHE', false);
Configure::write('Cache.check', false);
}

$UAs 指的是机器人的用户代理

这是一个可用于测试代码的示例 Controller :
<?php
App::uses('AppController', 'Controller');

class HomeController extends AppController {

public $name = 'Home';

public $uses = array();

public $helpers = array(
'Cache'
);

public $cacheAction = USE_CACHE;

public function index() {}

}

关于php - CakePHP 服务缓存 Controller 操作,关于用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com