您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程

ecshop源码函数分析

吴越潇2024-11-30Ecshop商城教程已有人查阅

导读tatic_caches缓存文件存放在ecshop/temp/static_caches下面先来看缓存工作的2个主要函数,写缓存和读缓存。该函数在ecshop/includes/lib_base.php

tatic_caches缓存文件存放在ecshop/temp/static_caches下面先来看缓存工作的2个主要函数,写缓存和读缓存。该函数在ecshop/includes/lib_base.php
写缓存
Php代码
1. /**
2. * 将结果写进缓存文件
3. *
4. * @params string $cache_name 缓存文件的名字
5. * @params string $caches 缓存的内容
6. *
7. * @return
8. */
9. function write_static_cache($cache_name, $caches)
10. {
11. if ((DEBUG_MODE & 2) == 2)
12. {
13. return false;
14. }
15. //缓存的路径
16. $cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php';
17. //缓存内容$content
18. $content = "<?php\r\n";
19. $content .= "\$data = " . var_export($caches, true) . ";\r\n";
20. $content .= "?>";
21. //将内容写进缓存
22. file_put_contents($cache_file_path, $content, LOCK_EX);
23. }
读缓存
Php代码
1. /**
2. * 读结果缓存文件
3. *
4. * @params string $cache_name//缓存文件的名字
5. *
6. * @return array $data
7. */
8. function read_static_cache($cache_name)
9. {
10. if ((DEBUG_MODE & 2) == 2)
11. {
12. return false;
13. }
14. //注意这里的静态变量用法
15. static $result = array();
16. //如果已经从缓存文件中读取了数据则直接返回结果
17. if (!emptyempty($result[$cache_name]))
18. {
19. return $result[$cache_name];
20. }
21. //缓存文件的路径
22. $cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php';
23. //如果缓存文件存在就读取缓存
24. if (file_exists($cache_file_path))
25. {
26. include_once($cache_file_path);
27. $result[$cache_name] = $data;
28. return $result[$cache_name];
29. }
30. else
31. {
32. return false;
33. }
34. }
举一个ecshop中具体应用的例子来说明
ecshop/inlucdes/lib_goods.php
function get_recommend_goods首页中展示的新品推荐、热卖商品、今日特价就是从这里来的
Php代码
1. /**
2. * 获得推荐商品
3. *
4. * @access public
5. * @param string $type 推荐类型,可以是 best, new, hot
6. * @return array
7. */
8. //代码我省略了一些,主要说明与缓存相关的代码
9. */
10. function get_recommend_goods($type = '', $cats = '')
11. {
12. /* 省略的代码。。。。*/
13. /*读取缓存文件*/
14. $data = read_static_cache('recommend_goods');
15. if($data==false) //如果缓存文件不存在
16. {
17. /*从数据库中获取需要的数据*/
18. /*将从数据库中获取的数据写入到相应的缓存文件当中*/
19. write_static_cache('recommend_goods', $goods_data);
20. }else //如果缓存文件存在
21. {
22. /*直接使用缓存数据*/
23. $good_data=$data;
24. }
25. }
Java代码
1. //缓存结果在这里 <?php
2. $data = array (
3. 'best' =>
4. array (
5. 0 =>
6. array (
7. 'goods_id' => '33',
8. 'sort_order' => '0',
9. ),
10. 1 =>
11. array (
12. 'goods_id' => '19',
13. 'sort_order' => '0',
14. ),
15. 2 =>
16. array (
17. 'goods_id' => '24',
18. 'sort_order' => '0',
19. ),
20. 3 =>
21. array (
22. 'goods_id' => '20',
23. 'sort_order' => '0',
24. ),
25. 4 =>
26. array (
27. 'goods_id' => '22',
28. 'sort_order' => '0',
29. ),
30. 5 =>
31. array (
32. 'goods_id' => '8',
33. 'sort_order' => '0',
34. ),
35. 6 =>
36. array (
37. 'goods_id' => '23',
38. 'sort_order' => '0',
39. ),
40. 7 =>
41. array (
42. 'goods_id' => '9',
43. 'sort_order' => '0',
44. ),
45. 8 =>
46. array (
47. 'goods_id' => '1',
48. 'sort_order' => '0',
49. ),
50. 9 =>
51. array (
52. 'goods_id' => '17',
53. 'sort_order' => '0',
54. ),
55. 10 =>
56. array (
57. 'goods_id' => '27',
58. 'sort_order' => '0',
59. ),
60. 11 =>
61. array (
62. 'goods_id' => '30',
63. 'sort_order' => '0',
64. ),
65. 12 =>
66. array (
67. 'goods_id' => '25',
68. 'sort_order' => '0',
69. ),
70. 13 =>
71. array (
72. 'goods_id' => '29',
73. 'sort_order' => '0',
74. ),
75. 14 =>
76. array (
77. 'goods_id' => '5',
78. 'sort_order' => '0',
79. ),
80. ),
81. 'new' =>
82. array (
83. 0 =>
84. array (
85. 'goods_id' => '33',
86. 'sort_order' => '0',
87. ),
88. 1 =>
89. array (
90. 'goods_id' => '19',
91. 'sort_order' => '0',
92. ),
93. 2 =>
94. array (
95. 'goods_id' => '32',
96. 'sort_order' => '0',
97. ),
98. 3 =>
99. array (
100. 'goods_id' => '24',
101. 'sort_order' => '0',
102. ),
103. 4 =>
104. array (
105. 'goods_id' => '20',
106. 'sort_order' => '0',
107. ),
108. 5 =>
109. array (
110. 'goods_id' => '12',
111. 'sort_order' => '0',
112. ),
113. 6 =>
114. array (
115. 'goods_id' => '22',
116. 'sort_order' => '0',
117. ),
118. 7 =>
119. array (
120. 'goods_id' => '8',
121. 'sort_order' => '0',
122. ),
123. 8 =>
124. array (
125. 'goods_id' => '23',
126. 'sort_order' => '0',
127. ),
128. 9 =>
129. array (
130. 'goods_id' => '9',
131. 'sort_order' => '0',
132. ),
133. 10 =>
134. array (
135. 'goods_id' => '1',
136. 'sort_order' => '0',
137. ),
138. 11 =>
139. array (
140. 'goods_id' => '27',
141. 'sort_order' => '0',
142. ),
143. 12 =>
144. array (
145. 'goods_id' => '5',
146. 'sort_order' => '0',
147. ),
148. ),
149. 'hot' =>
150. array (
151. 0 =>
152. array (
153. 'goods_id' => '33',
154. 'sort_order' => '0',
155. ),
156. 1 =>
157. array (
158. 'goods_id' => '19',
159. 'sort_order' => '0',
160. ),
161. 2 =>
162. array (
163. 'goods_id' => '32',
164. 'sort_order' => '0',
165. ),
166. 3 =>
167. array (
168. 'goods_id' => '24',
169. 'sort_order' => '0',
170. ),
171. 4 =>
172. array (
173. 'goods_id' => '20',
174. 'sort_order' => '0',
175. ),
176. 5 =>
177. array (
178. 'goods_id' => '8',
179. 'sort_order' => '0',
180. ),
181. 6 =>
182. array (
183. 'goods_id' => '9',
184. 'sort_order' => '0',
185. ),
186. 7 =>
187. array (
188. 'goods_id' => '13',
189. 'sort_order' => '0',
190. ),
191. 8 =>
192. array (
193. 'goods_id' => '10',
194. 'sort_order' => '0',
195. ),
196. 9 =>
197. array (
198. 'goods_id' => '1',
199. 'sort_order' => '0',
200. ),
201. 10 =>
202. array (
203. 'goods_id' => '14',
204. 'sort_order' => '0',
205. ),
206. 11 =>
207. array (
208. 'goods_id' => '17',
209. 'sort_order' => '0',
210. ),
211. 12 =>
212. array (
213. 'goods_id' => '27',
214. 'sort_order' => '0',
215. ),
216. 13 =>
217. array (
218. 'goods_id' => '30',
219. 'sort_order' => '0',
220. ),
221. 14 =>
222. array (
223. 'goods_id' => '25',
224. 'sort_order' => '0',
225. ),
226. 15 =>
227. array (
228. 'goods_id' => '29',
229. 'sort_order' => '0',
230. ),
231. 16 =>
232. array (
233. 'goods_id' => '28',
234. 'sort_order' => '0',
235. ),
236. 17 =>
237. array (
238. 'goods_id' => '26',
239. 'sort_order' => '0',
240. ),
241. ),
242. 'brand' =>
243. array (
244. 33 => 'jk',
245. 19 => '三星',
246. 32 => '诺基亚',
247. 24 => '联想',
248. 20 => '三星',
249. 12 => '摩托罗拉',
250. 22 => '多普达',
251. 8 => '飞利浦',
252. 23 => '诺基亚',
253. 9 => '诺基亚',
254. 13 => '诺基亚',
255. 10 => '索爱',
256. 1 => 'LG',
257. 14 => '诺基亚',
258. 17 => '夏新',
259. 5 => '索爱',
260. ),
261. );
262. ?>

本文标签:

很赞哦! ()

相关教程

相关源码

  • (自适应响应式)高新技术科技能源pbootcms网站HTML5模板本模板基于PbootCMS内核开发,为高新技术、科技研发、能源技术等科技型企业设计。采用HTML5+CSS3前沿技术,具备完善的响应式布局,能够自动适配手机、平板和电脑等多种终端设备。模板设计风格简约大气查看源码
  • (自适应)品牌策划高端设计公司网站pbootcms模板免费下载本模板为品牌策划与设计公司打造,基于PbootCMS内核开发,充分考虑了创意设计行业的视觉展示需求。模板设计风格现代简约,布局合理清晰,呈现设计作品与专业服务,帮助设计公司展示创意实力并吸引潜在客户。查看源码
  • (自适应响应式)黑色酷炫高端数码摄影pbootcms网站模板源码本模板基于PbootCMS开发,为摄影工作室、个人摄影师及摄影爱好者设计。采用深色系风格,突出摄影作品展示效果,适配各类数码设备浏览。适用于作品集展示查看源码
  • (PC+WAP)化工材料企业环保能源绿色营销型pbootcms模板源码下载本模板为化工材料及环保能源企业设计,采用PbootCMS开发,可展示各类化工产品、环保技术及能源解决方案。查看源码
  • 帝国cms7.5商城模板带图片视频广告位功能本模板基于帝国CMS7.5内核开发,为内容电商平台设计,集成文章、图片、视频多媒体展示与广告位管理功能。采用智能响应式技术,确保商品内容在不同设备上获得较优呈现效果,帮助快速构建专业的内容营销平台。查看源码
  • (自适应)WordPress二次元博客主题SakurairoSakurairo主题为二次元内容创作者设计,提供丰富的动漫风格元素和个性化的展示效果。该主题在原有Sakura主题基础上进行了功能增强,支持多种自定义设置,满足动漫爱好者建立个人博客的需求。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐