|
1 | 1 | <?php
|
2 |
| -//分布式环境IO操作实现函数,本文件只是示例代码,请根据自己环境的实际情况对以下函数进行修改。 |
| 2 | +//分布式环境IO操作实现函数,本文件只是示例代码,所有IO操作采用Memcache实现,但实际情况除了可以用Memcache存储还可以用redis,mongodb等。请根据自己环境的实际情况对以下函数进行实现。 |
3 | 3 | if(!extension_loaded('memcache')){
|
4 | 4 | header('Content-Type:text/html;charset=utf-8');
|
5 |
| - exit('您的环境不支持Memcache,请先安装Memcache扩展或者更高IO/sample.php文件,更改其他方式实现IO操作'); |
| 5 | + exit('您的环境不支持Memcache,请先安装Memcache扩展或者更改IO/sample.php文件,更改其他方式实现IO操作'); |
6 | 6 | }
|
7 | 7 | $global_mc=memcache_connect('localhost',11211);
|
8 |
| -//编译缓存文件创建方法 |
| 8 | + |
| 9 | +/** |
| 10 | + * 编译缓存文件创建方法 |
| 11 | + * 在写入核心缓存或者模版缓存时会调用这个函数,函数传递了要存的文件路径($filename)和文件内容($content),你需要在这个函数中定义缓存内容存放在哪里 |
| 12 | + * |
| 13 | + * @param string $filename 文件名 |
| 14 | + * @param string $content 文件内容 |
| 15 | + * @return boolean |
| 16 | + */ |
9 | 17 | function runtime_set($filename,$content){
|
10 | 18 | global $global_mc;
|
11 | 19 | return $global_mc->set($filename,$content,MEMCACHE_COMPRESSED,0);
|
12 | 20 | }
|
13 |
| -//编译缓存文件设置方法 |
| 21 | + |
| 22 | +/** |
| 23 | + * 获得编译缓存文件内容 |
| 24 | + * |
| 25 | + * @param string $filename 文件名 |
| 26 | + * @return string 返回编译缓存内容 |
| 27 | + */ |
14 | 28 | function runtime_get($filename){
|
15 | 29 | global $global_mc;
|
16 | 30 | return $global_mc->get($filename);
|
17 | 31 | }
|
18 |
| -//编译缓存文件删除方法 |
| 32 | + |
| 33 | +/** |
| 34 | + * 删除缓存文件 |
| 35 | + * |
| 36 | + * @param string $filename |
| 37 | + * @return boolean |
| 38 | + */ |
19 | 39 | function runtime_delete($filename){
|
20 | 40 | global $global_mc;
|
21 | 41 | return $global_mc->delete($filename);
|
22 | 42 | }
|
23 |
| -//F缓存设置,强烈建议修改为可持久性的存储方式,如redis |
| 43 | + |
| 44 | +/** |
| 45 | + * 设置F缓存 |
| 46 | + * 调用F函数进行设置缓存时会触发,建议存储在可持久化的地方。 |
| 47 | + * |
| 48 | + * @param string $name |
| 49 | + * @param string $value |
| 50 | + * @return boolean |
| 51 | + */ |
24 | 52 | function F_set($name,$value){
|
25 | 53 | global $global_mc;
|
26 | 54 | return $global_mc->set($name,$value,MEMCACHE_COMPRESSED,0);
|
27 | 55 | }
|
28 |
| -//F缓存获取方法,强烈建议修改为可持久性的存储方式,如redis |
| 56 | + |
| 57 | +/** |
| 58 | + * 获得F缓存 |
| 59 | + * |
| 60 | + * @param string $name |
| 61 | + * @return string 返回F缓存内容 |
| 62 | + */ |
29 | 63 | function F_get($name){
|
30 | 64 | global $global_mc;
|
31 | 65 | return $global_mc->get($name);
|
32 | 66 | }
|
33 |
| -//F缓存的删除方法,强烈建议修改为可持久性的存储方式,如redis |
| 67 | + |
| 68 | +/** |
| 69 | + * F缓存删除方法 |
| 70 | + * |
| 71 | + * @param string $name |
| 72 | + * @return boolean |
| 73 | + */ |
34 | 74 | function F_delete($name){
|
35 | 75 | global $global_mc;
|
36 | 76 | return $global_mc->delete($name);
|
37 | 77 | }
|
38 |
| -//S缓存的设置方法, 注:只有当DATA_CACHE_TYPE配置为File时下面的函数才会被触发,如果DATA_CACHE_TYPE如果不为File则触发你指定类型的缓存驱动。 |
| 78 | + |
| 79 | +/** |
| 80 | + * S缓存存储方法, S缓存建议存储在具有过期机制的缓存中(如memcache) |
| 81 | + * 只有当配置项DATA_CACHE_TYPE的值为file时,用S函数设置值才会触发此函数,DATA_CACHE_TYPE 系统默认为file,如果你设置了这个配置项不为file,那么S缓存的实现为你指定的缓存类型 |
| 82 | + * |
| 83 | + * @param string $name |
| 84 | + * @param string $value |
| 85 | + * @param integer $expire 过期时间,单位秒 |
| 86 | + * @return boolean |
| 87 | + */ |
39 | 88 | function S_set($name,$value,$expire){
|
40 | 89 | global $global_mc;
|
41 | 90 | return $global_mc->set($name,$value,MEMCACHE_COMPRESSED,$expire);
|
42 | 91 | }
|
| 92 | +/** |
| 93 | + * 获得S缓存 |
| 94 | + * |
| 95 | + * @param string $name |
| 96 | + * @return string 返回缓存内容 |
| 97 | + */ |
43 | 98 | function S_get($name){
|
44 | 99 | global $global_mc;
|
45 | 100 | return $global_mc->get($name);
|
46 | 101 | }
|
| 102 | +/** |
| 103 | + * 删除S缓存 |
| 104 | + * |
| 105 | + * @param string $name |
| 106 | + * @return boolean |
| 107 | + */ |
47 | 108 | function S_delete($name){
|
48 | 109 | global $global_mc;
|
49 | 110 | return $global_mc->delete($name);
|
50 | 111 | }
|
| 112 | +/** |
| 113 | + * S缓存清空方法 |
| 114 | + * 一般情况下是不会触发这个方法的,如果你的缓存没有flush方法也可以不实现这个函数 |
| 115 | + * |
| 116 | + * @return boolean |
| 117 | + */ |
51 | 118 | function S_clear(){
|
52 | 119 | global $global_mc;
|
53 | 120 | return $global_mc->flush();
|
54 | 121 | }
|
55 |
| -//文件上传,这只是示例代码,暂时以单机写入的方式举例,请根据自己的实际环境修改代码 |
| 122 | + |
| 123 | +/** |
| 124 | + * 文件上传 |
| 125 | + * 系统先将要上传的文件保存为当前服务器的临时文件,我们需要将临时文件保存到一些分布式的存储系统上 |
| 126 | + * |
| 127 | + * @param string $src_file 临时文件地址 |
| 128 | + * @param string $dest_file 保存地址 |
| 129 | + * @return void |
| 130 | + */ |
56 | 131 | function file_upload($src_file,$dest_file){
|
57 | 132 | $pdir=dirname($dest_file);
|
58 | 133 | if(!is_dir($pdir)) @mkdir($pdir,0777);
|
59 | 134 | return copy($src_file,$dest_file);
|
60 | 135 | }
|
61 |
| -//删除上传的文件 |
| 136 | + |
| 137 | +/** |
| 138 | + * 删除上传文件 |
| 139 | + * |
| 140 | + * @param string $filename |
| 141 | + * @return void |
| 142 | + */ |
62 | 143 | function file_delete($filename){
|
63 | 144 | return delete($filename);
|
64 | 145 | }
|
65 |
| -//获得文件的根地址 |
66 |
| -function file_url_root(){ |
| 146 | + |
| 147 | +/** |
| 148 | + * 获得文件显示地址的根路径 |
| 149 | + * |
| 150 | + * @param string $domain |
| 151 | + * @access public |
| 152 | + * @return string |
| 153 | + */ |
| 154 | +function file_url_root($domain=''){ |
67 | 155 | return '';
|
68 | 156 | }
|
69 |
| -//静态缓存,强烈建议修改为可持久性的存储方式 |
| 157 | + |
| 158 | +/** |
| 159 | + * 静态文件创建方法 |
| 160 | + * 设置配置项HTML_CACHE_ON为true后开启静态缓存机制会触发这个函数 |
| 161 | + * |
| 162 | + * @param string $filename 要创建的静态缓存文件名称 |
| 163 | + * @param string $content 静态缓存文件内容 |
| 164 | + * @return boolean |
| 165 | + */ |
70 | 166 | function html_set($filename,$content){
|
71 | 167 | global $global_mc;
|
72 | 168 | return $global_mc->set($filename,$content,MEMCACHE_COMPRESSED,0);
|
73 | 169 | }
|
| 170 | + |
| 171 | +/** |
| 172 | + * 获得静态缓存内容 |
| 173 | + * |
| 174 | + * @param mixed $filename |
| 175 | + * @return string 返回静态缓存内容 |
| 176 | + */ |
74 | 177 | function html_get($filename){
|
75 | 178 | global $global_mc;
|
76 | 179 | return $global_mc->get($filename);
|
77 | 180 | }
|
78 |
| -//日志批量保存 |
| 181 | + |
| 182 | +/** |
| 183 | + * 请求日志保存方法 |
| 184 | + * |
| 185 | + * @param array $logs 单次请求的所有日志 |
| 186 | + * @param string $request_info 此次请求信息,包括请求时间,客户端ip等信息。 |
| 187 | + * @return void |
| 188 | + */ |
79 | 189 | function log_save($logs,$request_info){
|
80 | 190 | }
|
81 |
| -//写入单条日志 |
| 191 | + |
| 192 | +/** |
| 193 | + * 单条日志写入方法 |
| 194 | + * |
| 195 | + * @param string $log 日志内容 |
| 196 | + * @return void |
| 197 | + */ |
82 | 198 | function log_write($log){
|
83 | 199 | }
|
0 commit comments