thnkphp5行为扩展html静态缓存
利用钩子thinkphp钩子进行行为扩展。先上本地测试结果
关闭缓存:
[email protected] */" _ue_custom_node_="true">:/home/www/wwwroot/yunshare.qq$ ab -n1000 -c10 http://yunshare.qq/Article/8/9.html This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking yunshare.qq (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.10.0 Server Hostname: yunshare.qq Server Port: 80 Document Path: /Article/8/9.html Document Length: 67926 bytes Concurrency Level: 10 Time taken for tests: 66.869 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 68095000 bytes HTML transferred: 67926000 bytes Requests per second: 14.95 [#/sec] (mean) Time per request: 668.692 [ms] (mean) Time per request: 66.869 [ms] (mean, across all concurrent requests) Transfer rate: 994.46 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 3 Processing: 252 666 72.9 661 1066 Waiting: 252 664 72.5 659 1065 Total: 255 666 72.9 661 1066 Percentage of the requests served within a certain time (ms) 50% 661 66% 687 75% 704 80% 716 90% 757 95% 792 98% 834 99% 858 100% 1066 (longest request)
开启缓存:
[email protected] */" _ue_custom_node_="true">:/home/www/wwwroot/yunshare.qq$ ab -n1000 -c10 http://yunshare.qq/Article/8/9.html This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking yunshare.qq (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.10.0 Server Hostname: yunshare.qq Server Port: 80 Document Path: /Article/8/9.html Document Length: 44835 bytes Concurrency Level: 10 Time taken for tests: 20.578 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 45004000 bytes HTML transferred: 44835000 bytes Requests per second: 48.60 [#/sec] (mean) Time per request: 205.777 [ms] (mean) Time per request: 20.578 [ms] (mean, across all concurrent requests) Transfer rate: 2135.77 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 2 Processing: 69 205 30.7 202 344 Waiting: 68 202 30.3 200 340 Total: 71 205 30.6 202 344 Percentage of the requests served within a certain time (ms) 50% 202 66% 213 75% 220 80% 224 90% 239 95% 254 98% 286 99% 328 100% 344 (longest request)
使用方法(和thinkphp3.2相似)
'配置值' 'html_cache_on' => false, // 开启静态缓存 'html_cache_time' => 7200, // 全局静态缓存有效期(秒) 'html_file_suffix' => '.shtml', // 设置静态缓存文件后缀 'html_cache_compile_type' => 'file',//缓存存储驱动 'html_cache_rules' => array( // 定义静态缓存规则 // // 定义格式1 数组方式 //'静态地址' => array('静态规则', '有效期', '附加规则'), //1.任意控制器的任意操作都适用 '*'=>array('{$_SERVER.REQUEST_URI|md5}'), //2.任意控制器的md5操作 'md5'=>array('{:module}/{:controller}/{:action}_{id|md5}'), //3.Static控制器的所有操作 'Static:'=>array('{:module}/{:controller}/{:action}',50)//第一个参数是构造的字符串,后面是缓存50秒 //4.Hmtl控制器的md5操作 'Html:md5'=>array('{:module}/{:controller}/{:action}'), ) );
参考:http://wp.iyouths.org/250.html
扩展步骤
-
文件位置:appplication/tags.php(或appplication/index/tags.php)
[ 'app\\index\\behavior\\ReadHtmlCacheBehavior',//可自行修改文件位置 ], 'view_filter' => [ 'app\\index\\behavior\\WriteHtmlCacheBehavior', ], ];
-
添加文件
application/index/behavior/ReadHtmlCacheBehavior.php
application/index/behavior/WriteHtmlCacheBehavior.php
注意:
检查是否修改模板文件改为了app_debug = true