1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=ISO-8859-1">
6 <title>ActiveMongo Tests
</title>
7 <link rel=
"stylesheet" type=
"text/css" href=
"style.css">
8 <link rel=
"stylesheet" type=
"text/css" href=
"container.css">
9 <script type=
"text/javascript" src=
"yahoo-dom-event.js"></script>
10 <script type=
"text/javascript" src=
"container-min.js"></script>
13 <body class=
"yui-skin-sam">
14 <table width=
"100%" border=
"0" cellspacing=
"0" cellpadding=
"0">
15 <tr><td class=
"title">ActiveMongo Tests
</td></tr>
16 <tr><td class=
"ruler"><img src=
"glass.png" width=
"3" height=
"3" alt=
""></td></tr>
20 <table cellpadding=
"1" border=
"0" width=
"100%">
22 <td class=
"headerItem" width=
"20%">Current file:
</td>
23 <td class=
"headerValue" width=
"80%"><a href=
"index.html">/home/crodas/projects/playground/ActiveMongo
</a>/
<a href=
"lib.html">lib
</a>/
<a href=
"lib_Cache.php.html">Cache.php
</a></td>
26 <td class=
"legendItem" width=
"20%">Legend:
</td>
27 <td class=
"legendValue" width=
"80%">
28 <span class=
"legendCov">executed
</span>
29 <span class=
"legendNoCov">not executed
</span>
30 <span class=
"legendDeadCode">dead code
</span>
38 <td class=
"ruler"><img src=
"glass.png" width=
"3" height=
"3" alt=
""></td>
45 <table width=
"90%" cellpadding=
"2" cellspacing=
"1" border=
"0">
47 <td class=
"tableHead" width=
"30%"> </td>
48 <td class=
"tableHead" colspan=
"9">Coverage
</td>
51 <td class=
"tableHead"> </td>
52 <td class=
"tableHead" colspan=
"3">Classes
</td>
53 <td class=
"tableHead" colspan=
"3">Functions / Methods
</td>
54 <td class=
"tableHead" colspan=
"3">Lines
</td>
57 <td class=
"coverItem">Total
</td>
58 <td class=
"coverBar" align=
"center" width=
"100">
59 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
61 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"33" height=
"10" alt=
"33.33%"><img src=
"snow.png" width=
"67" height=
"10" alt=
"33.33%"></td>
65 <td class=
"coverPerLo">33.33%
</td>
66 <td class=
"coverNumLo">1 /
3</td>
67 <td class=
"coverBar" align=
"center" width=
"100">
68 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
70 <td class=
"coverBarOutline"><img src=
"butter.png" width=
"68" height=
"10" alt=
"68.00%"><img src=
"snow.png" width=
"32" height=
"10" alt=
"68.00%"></td>
74 <td class=
"coverPerMed">68.00%
</td>
75 <td class=
"coverNumMed">17 /
25</td>
76 <td class=
"coverBar" align=
"center" width=
"100">
77 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
79 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"89" height=
"10" alt=
"89.26%"><img src=
"snow.png" width=
"11" height=
"10" alt=
"89.26%"></td>
83 <td class=
"coverPerHi">89.26%
</td>
84 <td class=
"coverNumHi">108 /
121</td>
88 <td class=
"tableHead" colspan=
"10"> </td>
91 <td class=
"coverItem"><b><a href=
"#55">CacheCursor
</a></b></td>
92 <td class=
"coverBar" align=
"center" width=
"100">
93 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
95 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
99 <td class=
"coverPerLo">0.00%
</td>
100 <td class=
"coverNumLo">0 /
1</td>
101 <td class=
"coverBar" align=
"center" width=
"100">
102 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
104 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"88" height=
"10" alt=
"88.89%"><img src=
"snow.png" width=
"12" height=
"10" alt=
"88.89%"></td>
108 <td class=
"coverPerHi">88.89%
</td>
109 <td class=
"coverNumHi">8 /
9</td>
110 <td class=
"coverBar" align=
"center" width=
"100">
111 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
113 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"94" height=
"10" alt=
"94.74%"><img src=
"snow.png" width=
"6" height=
"10" alt=
"94.74%"></td>
117 <td class=
"coverPerHi">94.74%
</td>
118 <td class=
"coverNumHi">18 /
19</td>
122 <td class=
"coverFile" colspan=
"4"> <a href=
"#61">function __construct(Array $array)
</a></td>
123 <td class=
"coverBar" align=
"center" width=
"100">
124 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
126 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
130 <td class=
"coverPerHi">100.00%
</td>
131 <td class=
"coverNumHi">1 /
1</td>
132 <td class=
"coverBar" align=
"center" width=
"100">
133 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
135 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
139 <td class=
"coverPerHi">100.00%
</td>
140 <td class=
"coverNumHi">4 /
4</td>
144 <td class=
"coverFile" colspan=
"4"> <a href=
"#68">function reset()
</a></td>
145 <td class=
"coverBar" align=
"center" width=
"100">
146 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
148 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
152 <td class=
"coverPerHi">100.00%
</td>
153 <td class=
"coverNumHi">1 /
1</td>
154 <td class=
"coverBar" align=
"center" width=
"100">
155 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
157 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
161 <td class=
"coverPerHi">100.00%
</td>
162 <td class=
"coverNumHi">2 /
2</td>
166 <td class=
"coverFile" colspan=
"4"> <a href=
"#73">function key()
</a></td>
167 <td class=
"coverBar" align=
"center" width=
"100">
168 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
170 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
174 <td class=
"coverPerLo">0.00%
</td>
175 <td class=
"coverNumLo">0 /
1</td>
176 <td class=
"coverBar" align=
"center" width=
"100">
177 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
179 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
183 <td class=
"coverPerLo">0.00%
</td>
184 <td class=
"coverNumLo">0 /
1</td>
188 <td class=
"coverFile" colspan=
"4"> <a href=
"#78">function current()
</a></td>
189 <td class=
"coverBar" align=
"center" width=
"100">
190 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
192 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
196 <td class=
"coverPerHi">100.00%
</td>
197 <td class=
"coverNumHi">1 /
1</td>
198 <td class=
"coverBar" align=
"center" width=
"100">
199 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
201 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
205 <td class=
"coverPerHi">100.00%
</td>
206 <td class=
"coverNumHi">3 /
3</td>
210 <td class=
"coverFile" colspan=
"4"> <a href=
"#86">function next()
</a></td>
211 <td class=
"coverBar" align=
"center" width=
"100">
212 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
214 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
218 <td class=
"coverPerHi">100.00%
</td>
219 <td class=
"coverNumHi">1 /
1</td>
220 <td class=
"coverBar" align=
"center" width=
"100">
221 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
223 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
227 <td class=
"coverPerHi">100.00%
</td>
228 <td class=
"coverNumHi">2 /
2</td>
232 <td class=
"coverFile" colspan=
"4"> <a href=
"#91">function valid()
</a></td>
233 <td class=
"coverBar" align=
"center" width=
"100">
234 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
236 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
240 <td class=
"coverPerHi">100.00%
</td>
241 <td class=
"coverNumHi">1 /
1</td>
242 <td class=
"coverBar" align=
"center" width=
"100">
243 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
245 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
249 <td class=
"coverPerHi">100.00%
</td>
250 <td class=
"coverNumHi">1 /
1</td>
254 <td class=
"coverFile" colspan=
"4"> <a href=
"#96">function rewind()
</a></td>
255 <td class=
"coverBar" align=
"center" width=
"100">
256 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
258 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
262 <td class=
"coverPerHi">100.00%
</td>
263 <td class=
"coverNumHi">1 /
1</td>
264 <td class=
"coverBar" align=
"center" width=
"100">
265 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
267 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
271 <td class=
"coverPerHi">100.00%
</td>
272 <td class=
"coverNumHi">3 /
3</td>
276 <td class=
"coverFile" colspan=
"4"> <a href=
"#102">function getNext()
</a></td>
277 <td class=
"coverBar" align=
"center" width=
"100">
278 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
280 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
284 <td class=
"coverPerHi">100.00%
</td>
285 <td class=
"coverNumHi">1 /
1</td>
286 <td class=
"coverBar" align=
"center" width=
"100">
287 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
289 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
293 <td class=
"coverPerHi">100.00%
</td>
294 <td class=
"coverNumHi">2 /
2</td>
298 <td class=
"coverFile" colspan=
"4"> <a href=
"#108">function count()
</a></td>
299 <td class=
"coverBar" align=
"center" width=
"100">
300 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
302 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
306 <td class=
"coverPerHi">100.00%
</td>
307 <td class=
"coverNumHi">1 /
1</td>
308 <td class=
"coverBar" align=
"center" width=
"100">
309 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
311 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
315 <td class=
"coverPerHi">100.00%
</td>
316 <td class=
"coverNumHi">1 /
1</td>
320 <td class=
"coverItem"><b><a href=
"#127">CacheDriver
</a></b></td>
321 <td class=
"coverBar" align=
"center" width=
"100">
322 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
324 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
328 <td class=
"coverPerHi">100.00%
</td>
329 <td class=
"coverNumHi">1 /
1</td>
330 <td class=
"coverBar" align=
"center" width=
"100">
331 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
333 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
337 <td class=
"coverPerHi">100.00%
</td>
338 <td class=
"coverNumHi">4 /
4</td>
339 <td class=
"coverBar" align=
"center" width=
"100">
340 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
342 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
346 <td class=
"coverPerHi">100.00%
</td>
347 <td class=
"coverNumHi">15 /
15</td>
351 <td class=
"coverFile" colspan=
"4"> <a href=
"#138">function serialize($object)
</a></td>
352 <td class=
"coverBar" align=
"center" width=
"100">
353 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
355 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
359 <td class=
"coverPerHi">100.00%
</td>
360 <td class=
"coverNumHi">1 /
1</td>
361 <td class=
"coverBar" align=
"center" width=
"100">
362 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
364 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
368 <td class=
"coverPerHi">100.00%
</td>
369 <td class=
"coverNumHi">1 /
1</td>
373 <td class=
"coverFile" colspan=
"4"> <a href=
"#150">function deserialize($string)
</a></td>
374 <td class=
"coverBar" align=
"center" width=
"100">
375 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
377 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
381 <td class=
"coverPerHi">100.00%
</td>
382 <td class=
"coverNumHi">1 /
1</td>
383 <td class=
"coverBar" align=
"center" width=
"100">
384 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
386 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
390 <td class=
"coverPerHi">100.00%
</td>
391 <td class=
"coverNumHi">1 /
1</td>
395 <td class=
"coverFile" colspan=
"4"> <a href=
"#170">function getMulti(Array $keys, Array &$objects)
</a></td>
396 <td class=
"coverBar" align=
"center" width=
"100">
397 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
399 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
403 <td class=
"coverPerHi">100.00%
</td>
404 <td class=
"coverNumHi">1 /
1</td>
405 <td class=
"coverBar" align=
"center" width=
"100">
406 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
408 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
412 <td class=
"coverPerHi">100.00%
</td>
413 <td class=
"coverNumHi">6 /
6</td>
417 <td class=
"coverFile" colspan=
"4"> <a href=
"#194">function setMulti(Array $objects, Array $ttl)
</a></td>
418 <td class=
"coverBar" align=
"center" width=
"100">
419 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
421 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
425 <td class=
"coverPerHi">100.00%
</td>
426 <td class=
"coverNumHi">1 /
1</td>
427 <td class=
"coverBar" align=
"center" width=
"100">
428 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
430 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
434 <td class=
"coverPerHi">100.00%
</td>
435 <td class=
"coverNumHi">7 /
7</td>
439 <td class=
"coverItem"><b><a href=
"#230">ActiveMongo_Cache
</a></b></td>
440 <td class=
"coverBar" align=
"center" width=
"100">
441 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
443 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
447 <td class=
"coverPerLo">0.00%
</td>
448 <td class=
"coverNumLo">0 /
1</td>
449 <td class=
"coverBar" align=
"center" width=
"100">
450 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
452 <td class=
"coverBarOutline"><img src=
"butter.png" width=
"41" height=
"10" alt=
"41.67%"><img src=
"snow.png" width=
"59" height=
"10" alt=
"41.67%"></td>
456 <td class=
"coverPerMed">41.67%
</td>
457 <td class=
"coverNumMed">5 /
12</td>
458 <td class=
"coverBar" align=
"center" width=
"100">
459 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
461 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"86" height=
"10" alt=
"86.21%"><img src=
"snow.png" width=
"14" height=
"10" alt=
"86.21%"></td>
465 <td class=
"coverPerHi">86.21%
</td>
466 <td class=
"coverNumHi">75 /
87</td>
470 <td class=
"coverFile" colspan=
"4"> <a href=
"#247">private function __construct()
</a></td>
471 <td class=
"coverBar" align=
"center" width=
"100">
472 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
474 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
478 <td class=
"coverPerHi">100.00%
</td>
479 <td class=
"coverNumHi">1 /
1</td>
480 <td class=
"coverBar" align=
"center" width=
"100">
481 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
483 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
487 <td class=
"coverPerHi">100.00%
</td>
488 <td class=
"coverNumHi">5 /
5</td>
492 <td class=
"coverFile" colspan=
"4"> <a href=
"#263">public static function Init()
</a></td>
493 <td class=
"coverBar" align=
"center" width=
"100">
494 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
496 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
500 <td class=
"coverPerHi">100.00%
</td>
501 <td class=
"coverNumHi">1 /
1</td>
502 <td class=
"coverBar" align=
"center" width=
"100">
503 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
505 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
509 <td class=
"coverPerHi">100.00%
</td>
510 <td class=
"coverNumHi">4 /
4</td>
514 <td class=
"coverFile" colspan=
"4"> <a href=
"#281">public static function setDriver(CacheDriver $driver)
</a></td>
515 <td class=
"coverBar" align=
"center" width=
"100">
516 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
518 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
522 <td class=
"coverPerHi">100.00%
</td>
523 <td class=
"coverNumHi">1 /
1</td>
524 <td class=
"coverBar" align=
"center" width=
"100">
525 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
527 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
531 <td class=
"coverPerHi">100.00%
</td>
532 <td class=
"coverNumHi">3 /
3</td>
536 <td class=
"coverFile" colspan=
"4"> <a href=
"#295">public static function enable()
</a></td>
537 <td class=
"coverBar" align=
"center" width=
"100">
538 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
540 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
544 <td class=
"coverPerLo">0.00%
</td>
545 <td class=
"coverNumLo">0 /
1</td>
546 <td class=
"coverBar" align=
"center" width=
"100">
547 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
549 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
553 <td class=
"coverPerLo">0.00%
</td>
554 <td class=
"coverNumLo">0 /
3</td>
558 <td class=
"coverFile" colspan=
"4"> <a href=
"#309">public static function disable()
</a></td>
559 <td class=
"coverBar" align=
"center" width=
"100">
560 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
562 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
566 <td class=
"coverPerLo">0.00%
</td>
567 <td class=
"coverNumLo">0 /
1</td>
568 <td class=
"coverBar" align=
"center" width=
"100">
569 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
571 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
575 <td class=
"coverPerLo">0.00%
</td>
576 <td class=
"coverNumLo">0 /
3</td>
580 <td class=
"coverFile" colspan=
"4"> <a href=
"#325">final protected function canUseCache($class)
</a></td>
581 <td class=
"coverBar" align=
"center" width=
"100">
582 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
584 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
588 <td class=
"coverPerLo">0.00%
</td>
589 <td class=
"coverNumLo">0 /
1</td>
590 <td class=
"coverBar" align=
"center" width=
"100">
591 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
593 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"75" height=
"10" alt=
"75.00%"><img src=
"snow.png" width=
"25" height=
"10" alt=
"75.00%"></td>
597 <td class=
"coverPerHi">75.00%
</td>
598 <td class=
"coverNumHi">3 /
4</td>
602 <td class=
"coverFile" colspan=
"4"> <a href=
"#345">final protected function getQueryID($query_document)
</a></td>
603 <td class=
"coverBar" align=
"center" width=
"100">
604 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
606 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
610 <td class=
"coverPerHi">100.00%
</td>
611 <td class=
"coverNumHi">1 /
1</td>
612 <td class=
"coverBar" align=
"center" width=
"100">
613 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
615 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
619 <td class=
"coverPerHi">100.00%
</td>
620 <td class=
"coverNumHi">2 /
2</td>
624 <td class=
"coverFile" colspan=
"4"> <a href=
"#363">final static function deleteObject($id)
</a></td>
625 <td class=
"coverBar" align=
"center" width=
"100">
626 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
628 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
632 <td class=
"coverPerHi">100.00%
</td>
633 <td class=
"coverNumHi">1 /
1</td>
634 <td class=
"coverBar" align=
"center" width=
"100">
635 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
637 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"100" height=
"10" alt=
"100.00%"><img src=
"snow.png" width=
"0" height=
"10" alt=
"100.00%"></td>
641 <td class=
"coverPerHi">100.00%
</td>
642 <td class=
"coverNumHi">4 /
4</td>
646 <td class=
"coverFile" colspan=
"4"> <a href=
"#380">final static function getObject($id)
</a></td>
647 <td class=
"coverBar" align=
"center" width=
"100">
648 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
650 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
654 <td class=
"coverPerLo">0.00%
</td>
655 <td class=
"coverNumLo">0 /
1</td>
656 <td class=
"coverBar" align=
"center" width=
"100">
657 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
659 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"85" height=
"10" alt=
"85.71%"><img src=
"snow.png" width=
"15" height=
"10" alt=
"85.71%"></td>
663 <td class=
"coverPerHi">85.71%
</td>
664 <td class=
"coverNumHi">6 /
7</td>
668 <td class=
"coverFile" colspan=
"4"> <a href=
"#408">function QueryRead($class, $query_document, &$resultset, $use_cache=TRUE)
</a></td>
669 <td class=
"coverBar" align=
"center" width=
"100">
670 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
672 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
676 <td class=
"coverPerLo">0.00%
</td>
677 <td class=
"coverNumLo">0 /
1</td>
678 <td class=
"coverBar" align=
"center" width=
"100">
679 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
681 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"96" height=
"10" alt=
"96.55%"><img src=
"snow.png" width=
"4" height=
"10" alt=
"96.55%"></td>
685 <td class=
"coverPerHi">96.55%
</td>
686 <td class=
"coverNumHi">28 /
29</td>
690 <td class=
"coverFile" colspan=
"4"> <a href=
"#468">function QuerySave($class, $query_document, $cursor)
</a></td>
691 <td class=
"coverBar" align=
"center" width=
"100">
692 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
694 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
698 <td class=
"coverPerLo">0.00%
</td>
699 <td class=
"coverNumLo">0 /
1</td>
700 <td class=
"coverBar" align=
"center" width=
"100">
701 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
703 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"92" height=
"10" alt=
"92.86%"><img src=
"snow.png" width=
"8" height=
"10" alt=
"92.86%"></td>
707 <td class=
"coverPerHi">92.86%
</td>
708 <td class=
"coverNumHi">13 /
14</td>
712 <td class=
"coverFile" colspan=
"4"> <a href=
"#503">function UpdateDocumentHook($class, $document, $obj)
</a></td>
713 <td class=
"coverBar" align=
"center" width=
"100">
714 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
716 <td class=
"coverBarOutline"><img src=
"scarlet_red.png" width=
"0" height=
"10" alt=
"0.00%"><img src=
"snow.png" width=
"100" height=
"10" alt=
"0.00%"></td>
720 <td class=
"coverPerLo">0.00%
</td>
721 <td class=
"coverNumLo">0 /
1</td>
722 <td class=
"coverBar" align=
"center" width=
"100">
723 <table border=
"0" cellspacing=
"0" cellpadding=
"1">
725 <td class=
"coverBarOutline"><img src=
"chameleon.png" width=
"77" height=
"10" alt=
"77.78%"><img src=
"snow.png" width=
"23" height=
"10" alt=
"77.78%"></td>
729 <td class=
"coverPerHi">77.78%
</td>
730 <td class=
"coverNumHi">7 /
9</td>
739 <table cellpadding=
"0" cellspacing=
"0" border=
"0">
746 <span class=
"lineNum" id=
"container1"><a name=
"1"></a><a href=
"#1" id=
"line1"> 1</a> </span> :
<?php
747 <span class=
"lineNum" id=
"container2"><a name=
"2"></a><a href=
"#2" id=
"line2"> 2</a> </span> : /*
748 <span class=
"lineNum" id=
"container3"><a name=
"3"></a><a href=
"#3" id=
"line3"> 3</a> </span> : +---------------------------------------------------------------------------------+
749 <span class=
"lineNum" id=
"container4"><a name=
"4"></a><a href=
"#4" id=
"line4"> 4</a> </span> : | Copyright (c)
2010 ActiveMongo |
750 <span class=
"lineNum" id=
"container5"><a name=
"5"></a><a href=
"#5" id=
"line5"> 5</a> </span> : +---------------------------------------------------------------------------------+
751 <span class=
"lineNum" id=
"container6"><a name=
"6"></a><a href=
"#6" id=
"line6"> 6</a> </span> : | Redistribution and use in source and binary forms, with or without |
752 <span class=
"lineNum" id=
"container7"><a name=
"7"></a><a href=
"#7" id=
"line7"> 7</a> </span> : | modification, are permitted provided that the following conditions are met: |
753 <span class=
"lineNum" id=
"container8"><a name=
"8"></a><a href=
"#8" id=
"line8"> 8</a> </span> : |
1. Redistributions of source code must retain the above copyright |
754 <span class=
"lineNum" id=
"container9"><a name=
"9"></a><a href=
"#9" id=
"line9"> 9</a> </span> : | notice, this list of conditions and the following disclaimer. |
755 <span class=
"lineNum" id=
"container10"><a name=
"10"></a><a href=
"#10" id=
"line10"> 10</a> </span> : | |
756 <span class=
"lineNum" id=
"container11"><a name=
"11"></a><a href=
"#11" id=
"line11"> 11</a> </span> : |
2. Redistributions in binary form must reproduce the above copyright |
757 <span class=
"lineNum" id=
"container12"><a name=
"12"></a><a href=
"#12" id=
"line12"> 12</a> </span> : | notice, this list of conditions and the following disclaimer in the |
758 <span class=
"lineNum" id=
"container13"><a name=
"13"></a><a href=
"#13" id=
"line13"> 13</a> </span> : | documentation and/or other materials provided with the distribution. |
759 <span class=
"lineNum" id=
"container14"><a name=
"14"></a><a href=
"#14" id=
"line14"> 14</a> </span> : | |
760 <span class=
"lineNum" id=
"container15"><a name=
"15"></a><a href=
"#15" id=
"line15"> 15</a> </span> : |
3. All advertising materials mentioning features or use of this software |
761 <span class=
"lineNum" id=
"container16"><a name=
"16"></a><a href=
"#16" id=
"line16"> 16</a> </span> : | must display the following acknowledgement: |
762 <span class=
"lineNum" id=
"container17"><a name=
"17"></a><a href=
"#17" id=
"line17"> 17</a> </span> : | This product includes software developed by César D. Rodas. |
763 <span class=
"lineNum" id=
"container18"><a name=
"18"></a><a href=
"#18" id=
"line18"> 18</a> </span> : | |
764 <span class=
"lineNum" id=
"container19"><a name=
"19"></a><a href=
"#19" id=
"line19"> 19</a> </span> : |
4. Neither the name of the César D. Rodas nor the |
765 <span class=
"lineNum" id=
"container20"><a name=
"20"></a><a href=
"#20" id=
"line20"> 20</a> </span> : | names of its contributors may be used to endorse or promote products |
766 <span class=
"lineNum" id=
"container21"><a name=
"21"></a><a href=
"#21" id=
"line21"> 21</a> </span> : | derived from this software without specific prior written permission. |
767 <span class=
"lineNum" id=
"container22"><a name=
"22"></a><a href=
"#22" id=
"line22"> 22</a> </span> : | |
768 <span class=
"lineNum" id=
"container23"><a name=
"23"></a><a href=
"#23" id=
"line23"> 23</a> </span> : | THIS SOFTWARE IS PROVIDED BY CÉSAR D. RODAS ''AS IS'' AND ANY |
769 <span class=
"lineNum" id=
"container24"><a name=
"24"></a><a href=
"#24" id=
"line24"> 24</a> </span> : | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
770 <span class=
"lineNum" id=
"container25"><a name=
"25"></a><a href=
"#25" id=
"line25"> 25</a> </span> : | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
771 <span class=
"lineNum" id=
"container26"><a name=
"26"></a><a href=
"#26" id=
"line26"> 26</a> </span> : | DISCLAIMED. IN NO EVENT SHALL CÉSAR D. RODAS BE LIABLE FOR ANY |
772 <span class=
"lineNum" id=
"container27"><a name=
"27"></a><a href=
"#27" id=
"line27"> 27</a> </span> : | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
773 <span class=
"lineNum" id=
"container28"><a name=
"28"></a><a href=
"#28" id=
"line28"> 28</a> </span> : | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
774 <span class=
"lineNum" id=
"container29"><a name=
"29"></a><a href=
"#29" id=
"line29"> 29</a> </span> : | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
775 <span class=
"lineNum" id=
"container30"><a name=
"30"></a><a href=
"#30" id=
"line30"> 30</a> </span> : | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
776 <span class=
"lineNum" id=
"container31"><a name=
"31"></a><a href=
"#31" id=
"line31"> 31</a> </span> : | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
777 <span class=
"lineNum" id=
"container32"><a name=
"32"></a><a href=
"#32" id=
"line32"> 32</a> </span> : | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE |
778 <span class=
"lineNum" id=
"container33"><a name=
"33"></a><a href=
"#33" id=
"line33"> 33</a> </span> : +---------------------------------------------------------------------------------+
779 <span class=
"lineNum" id=
"container34"><a name=
"34"></a><a href=
"#34" id=
"line34"> 34</a> </span> : | Authors: César Rodas
<crodas@php.net
> |
780 <span class=
"lineNum" id=
"container35"><a name=
"35"></a><a href=
"#35" id=
"line35"> 35</a> </span> : +---------------------------------------------------------------------------------+
781 <span class=
"lineNum" id=
"container36"><a name=
"36"></a><a href=
"#36" id=
"line36"> 36</a> </span> : */
782 <span class=
"lineNum" id=
"container37"><a name=
"37"></a><a href=
"#37" id=
"line37"> 37</a> </span> :
783 <span class=
"lineNum" id=
"container38"><a name=
"38"></a><a href=
"#38" id=
"line38"> 38</a> </span> : // class CursorCache {{{
784 <span class=
"lineNum" id=
"container39"><a name=
"39"></a><a href=
"#39" id=
"line39"> 39</a> </span> : /**
785 <span class=
"lineNum" id=
"container40"><a name=
"40"></a><a href=
"#40" id=
"line40"> 40</a> </span> : * Cursor used for cached items
786 <span class=
"lineNum" id=
"container41"><a name=
"41"></a><a href=
"#41" id=
"line41"> 41</a> </span> : *
787 <span class=
"lineNum" id=
"container42"><a name=
"42"></a><a href=
"#42" id=
"line42"> 42</a> </span> : * Hack for ActiveMongo, fake MongoCursor
788 <span class=
"lineNum" id=
"container43"><a name=
"43"></a><a href=
"#43" id=
"line43"> 43</a> </span> : * subclass that iterates in a given array.
789 <span class=
"lineNum" id=
"container44"><a name=
"44"></a><a href=
"#44" id=
"line44"> 44</a> </span> : *
790 <span class=
"lineNum" id=
"container45"><a name=
"45"></a><a href=
"#45" id=
"line45"> 45</a> </span> : * This avoid re-write the main iteration
791 <span class=
"lineNum" id=
"container46"><a name=
"46"></a><a href=
"#46" id=
"line46"> 46</a> </span> : * support at MongoDB, nevertheless this might
792 <span class=
"lineNum" id=
"container47"><a name=
"47"></a><a href=
"#47" id=
"line47"> 47</a> </span> : * be improved in the future.
793 <span class=
"lineNum" id=
"container48"><a name=
"48"></a><a href=
"#48" id=
"line48"> 48</a> </span> : *
794 <span class=
"lineNum" id=
"container49"><a name=
"49"></a><a href=
"#49" id=
"line49"> 49</a> </span> : * @author César D. Rodas
<crodas@php.net
>
795 <span class=
"lineNum" id=
"container50"><a name=
"50"></a><a href=
"#50" id=
"line50"> 50</a> </span> : * @license BSD License
796 <span class=
"lineNum" id=
"container51"><a name=
"51"></a><a href=
"#51" id=
"line51"> 51</a> </span> : * @package ActiveMongo
797 <span class=
"lineNum" id=
"container52"><a name=
"52"></a><a href=
"#52" id=
"line52"> 52</a> </span> : * @version
1.0
798 <span class=
"lineNum" id=
"container53"><a name=
"53"></a><a href=
"#53" id=
"line53"> 53</a> </span> : *
799 <span class=
"lineNum" id=
"container54"><a name=
"54"></a><a href=
"#54" id=
"line54"> 54</a> </span> : */
800 <span class=
"lineNum" id=
"container55"><a name=
"55"></a><a href=
"#55" id=
"line55"> 55</a> </span> : final class CacheCursor Extends MongoCursor
801 <span class=
"lineNum" id=
"container56"><a name=
"56"></a><a href=
"#56" id=
"line56"> 56</a> </span> : {
802 <span class=
"lineNum" id=
"container57"><a name=
"57"></a><a href=
"#57" id=
"line57"> 57</a> </span> : protected $var;
803 <span class=
"lineNum" id=
"container58"><a name=
"58"></a><a href=
"#58" id=
"line58"> 58</a> </span> : protected $size;
804 <span class=
"lineNum" id=
"container59"><a name=
"59"></a><a href=
"#59" id=
"line59"> 59</a> </span> : protected $pos;
805 <span class=
"lineNum" id=
"container60"><a name=
"60"></a><a href=
"#60" id=
"line60"> 60</a> </span> :
806 <span class=
"lineNum" id=
"container61"><a name=
"61"></a><a href=
"#61" id=
"line61"> 61</a> </span> : function __construct(Array $array)
807 <span class=
"lineNum" id=
"container62"><a name=
"62"></a><a href=
"#62" id=
"line62"> 62</a> </span> : {
808 <span class=
"lineNum" id=
"container63"><a name=
"63"></a><a href=
"#63" id=
"line63"> 63</a> </span><span class=
"lineCov"> 5 : $this-
>var = array_values($array);
</span>
809 <span class=
"lineNum" id=
"container64"><a name=
"64"></a><a href=
"#64" id=
"line64"> 64</a> </span><span class=
"lineCov"> 5 : $this-
>size = count($array);
</span>
810 <span class=
"lineNum" id=
"container65"><a name=
"65"></a><a href=
"#65" id=
"line65"> 65</a> </span><span class=
"lineCov"> 5 : $this-
>pos =
0;
</span>
811 <span class=
"lineNum" id=
"container66"><a name=
"66"></a><a href=
"#66" id=
"line66"> 66</a> </span><span class=
"lineCov"> 5 : }
</span>
812 <span class=
"lineNum" id=
"container67"><a name=
"67"></a><a href=
"#67" id=
"line67"> 67</a> </span> :
813 <span class=
"lineNum" id=
"container68"><a name=
"68"></a><a href=
"#68" id=
"line68"> 68</a> </span> : function reset()
814 <span class=
"lineNum" id=
"container69"><a name=
"69"></a><a href=
"#69" id=
"line69"> 69</a> </span> : {
815 <span class=
"lineNum" id=
"container70"><a name=
"70"></a><a href=
"#70" id=
"line70"> 70</a> </span><span class=
"lineCov"> 5 : $this-
>pos = -
1;
</span>
816 <span class=
"lineNum" id=
"container71"><a name=
"71"></a><a href=
"#71" id=
"line71"> 71</a> </span><span class=
"lineCov"> 5 : }
</span>
817 <span class=
"lineNum" id=
"container72"><a name=
"72"></a><a href=
"#72" id=
"line72"> 72</a> </span> :
818 <span class=
"lineNum" id=
"container73"><a name=
"73"></a><a href=
"#73" id=
"line73"> 73</a> </span> : function key()
819 <span class=
"lineNum" id=
"container74"><a name=
"74"></a><a href=
"#74" id=
"line74"> 74</a> </span> : {
820 <span class=
"lineNum" id=
"container75"><a name=
"75"></a><a href=
"#75" id=
"line75"> 75</a> </span><span class=
"lineNoCov"> 0 : return (string)$this-
>var[$this-
>pos]['_id'];
</span>
821 <span class=
"lineNum" id=
"container76"><a name=
"76"></a><a href=
"#76" id=
"line76"> 76</a> </span><span class=
"lineDeadCode"> : }
</span>
822 <span class=
"lineNum" id=
"container77"><a name=
"77"></a><a href=
"#77" id=
"line77"> 77</a> </span> :
823 <span class=
"lineNum" id=
"container78"><a name=
"78"></a><a href=
"#78" id=
"line78"> 78</a> </span> : function current()
824 <span class=
"lineNum" id=
"container79"><a name=
"79"></a><a href=
"#79" id=
"line79"> 79</a> </span> : {
825 <span class=
"lineNum" id=
"container80"><a name=
"80"></a><a href=
"#80" id=
"line80"> 80</a> </span><span class=
"lineCov"> 1 : if (!$this-
>valid()) {
</span>
826 <span class=
"lineNum" id=
"container81"><a name=
"81"></a><a href=
"#81" id=
"line81"> 81</a> </span><span class=
"lineCov"> 1 : return array();
</span>
827 <span class=
"lineNum" id=
"container82"><a name=
"82"></a><a href=
"#82" id=
"line82"> 82</a> </span><span class=
"lineDeadCode"> : }
</span>
828 <span class=
"lineNum" id=
"container83"><a name=
"83"></a><a href=
"#83" id=
"line83"> 83</a> </span><span class=
"lineCov"> 1 : return $this-
>var[$this-
>pos];
</span>
829 <span class=
"lineNum" id=
"container84"><a name=
"84"></a><a href=
"#84" id=
"line84"> 84</a> </span><span class=
"lineDeadCode"> : }
</span>
830 <span class=
"lineNum" id=
"container85"><a name=
"85"></a><a href=
"#85" id=
"line85"> 85</a> </span> :
831 <span class=
"lineNum" id=
"container86"><a name=
"86"></a><a href=
"#86" id=
"line86"> 86</a> </span> : function next()
832 <span class=
"lineNum" id=
"container87"><a name=
"87"></a><a href=
"#87" id=
"line87"> 87</a> </span> : {
833 <span class=
"lineNum" id=
"container88"><a name=
"88"></a><a href=
"#88" id=
"line88"> 88</a> </span><span class=
"lineCov"> 5 : ++$this-
>pos;
</span>
834 <span class=
"lineNum" id=
"container89"><a name=
"89"></a><a href=
"#89" id=
"line89"> 89</a> </span><span class=
"lineCov"> 5 : }
</span>
835 <span class=
"lineNum" id=
"container90"><a name=
"90"></a><a href=
"#90" id=
"line90"> 90</a> </span> :
836 <span class=
"lineNum" id=
"container91"><a name=
"91"></a><a href=
"#91" id=
"line91"> 91</a> </span> : function valid()
837 <span class=
"lineNum" id=
"container92"><a name=
"92"></a><a href=
"#92" id=
"line92"> 92</a> </span> : {
838 <span class=
"lineNum" id=
"container93"><a name=
"93"></a><a href=
"#93" id=
"line93"> 93</a> </span><span class=
"lineCov"> 3 : return isset($this-
>var[$this-
>pos]);
</span>
839 <span class=
"lineNum" id=
"container94"><a name=
"94"></a><a href=
"#94" id=
"line94"> 94</a> </span><span class=
"lineDeadCode"> : }
</span>
840 <span class=
"lineNum" id=
"container95"><a name=
"95"></a><a href=
"#95" id=
"line95"> 95</a> </span> :
841 <span class=
"lineNum" id=
"container96"><a name=
"96"></a><a href=
"#96" id=
"line96"> 96</a> </span> : function rewind()
842 <span class=
"lineNum" id=
"container97"><a name=
"97"></a><a href=
"#97" id=
"line97"> 97</a> </span> : {
843 <span class=
"lineNum" id=
"container98"><a name=
"98"></a><a href=
"#98" id=
"line98"> 98</a> </span><span class=
"lineCov"> 5 : $this-
>reset();
</span>
844 <span class=
"lineNum" id=
"container99"><a name=
"99"></a><a href=
"#99" id=
"line99"> 99</a> </span><span class=
"lineCov"> 5 : $this-
>next();
</span>
845 <span class=
"lineNum" id=
"container100"><a name=
"100"></a><a href=
"#100" id=
"line100"> 100</a> </span><span class=
"lineCov"> 5 : }
</span>
846 <span class=
"lineNum" id=
"container101"><a name=
"101"></a><a href=
"#101" id=
"line101"> 101</a> </span> :
847 <span class=
"lineNum" id=
"container102"><a name=
"102"></a><a href=
"#102" id=
"line102"> 102</a> </span> : function getNext()
848 <span class=
"lineNum" id=
"container103"><a name=
"103"></a><a href=
"#103" id=
"line103"> 103</a> </span> : {
849 <span class=
"lineNum" id=
"container104"><a name=
"104"></a><a href=
"#104" id=
"line104"> 104</a> </span><span class=
"lineCov"> 5 : $this-
>rewind();
</span>
850 <span class=
"lineNum" id=
"container105"><a name=
"105"></a><a href=
"#105" id=
"line105"> 105</a> </span><span class=
"lineCov"> 5 : return $this-
>var[$this-
>pos];
</span>
851 <span class=
"lineNum" id=
"container106"><a name=
"106"></a><a href=
"#106" id=
"line106"> 106</a> </span><span class=
"lineDeadCode"> : }
</span>
852 <span class=
"lineNum" id=
"container107"><a name=
"107"></a><a href=
"#107" id=
"line107"> 107</a> </span> :
853 <span class=
"lineNum" id=
"container108"><a name=
"108"></a><a href=
"#108" id=
"line108"> 108</a> </span> : function count()
854 <span class=
"lineNum" id=
"container109"><a name=
"109"></a><a href=
"#109" id=
"line109"> 109</a> </span> : {
855 <span class=
"lineNum" id=
"container110"><a name=
"110"></a><a href=
"#110" id=
"line110"> 110</a> </span><span class=
"lineCov"> 3 : return count($this-
>var);
</span>
856 <span class=
"lineNum" id=
"container111"><a name=
"111"></a><a href=
"#111" id=
"line111"> 111</a> </span><span class=
"lineDeadCode"> : }
</span>
857 <span class=
"lineNum" id=
"container112"><a name=
"112"></a><a href=
"#112" id=
"line112"> 112</a> </span> :
858 <span class=
"lineNum" id=
"container113"><a name=
"113"></a><a href=
"#113" id=
"line113"> 113</a> </span> : }
859 <span class=
"lineNum" id=
"container114"><a name=
"114"></a><a href=
"#114" id=
"line114"> 114</a> </span> : // }}}
860 <span class=
"lineNum" id=
"container115"><a name=
"115"></a><a href=
"#115" id=
"line115"> 115</a> </span> :
861 <span class=
"lineNum" id=
"container116"><a name=
"116"></a><a href=
"#116" id=
"line116"> 116</a> </span> : /**
862 <span class=
"lineNum" id=
"container117"><a name=
"117"></a><a href=
"#117" id=
"line117"> 117</a> </span> : * CacheDriver
863 <span class=
"lineNum" id=
"container118"><a name=
"118"></a><a href=
"#118" id=
"line118"> 118</a> </span> : *
864 <span class=
"lineNum" id=
"container119"><a name=
"119"></a><a href=
"#119" id=
"line119"> 119</a> </span> : * Cache base class, each driver must inherit
865 <span class=
"lineNum" id=
"container120"><a name=
"120"></a><a href=
"#120" id=
"line120"> 120</a> </span> : * this class, and must implement each method.
866 <span class=
"lineNum" id=
"container121"><a name=
"121"></a><a href=
"#121" id=
"line121"> 121</a> </span> : *
867 <span class=
"lineNum" id=
"container122"><a name=
"122"></a><a href=
"#122" id=
"line122"> 122</a> </span> : * @author César D. Rodas
<crodas@php.net
>
868 <span class=
"lineNum" id=
"container123"><a name=
"123"></a><a href=
"#123" id=
"line123"> 123</a> </span> : * @license BSD License
869 <span class=
"lineNum" id=
"container124"><a name=
"124"></a><a href=
"#124" id=
"line124"> 124</a> </span> : * @package ActiveMongo
870 <span class=
"lineNum" id=
"container125"><a name=
"125"></a><a href=
"#125" id=
"line125"> 125</a> </span> : * @version
1.0
871 <span class=
"lineNum" id=
"container126"><a name=
"126"></a><a href=
"#126" id=
"line126"> 126</a> </span> : */
872 <span class=
"lineNum" id=
"container127"><a name=
"127"></a><a href=
"#127" id=
"line127"> 127</a> </span> : abstract class CacheDriver
873 <span class=
"lineNum" id=
"container128"><a name=
"128"></a><a href=
"#128" id=
"line128"> 128</a> </span> : {
874 <span class=
"lineNum" id=
"container129"><a name=
"129"></a><a href=
"#129" id=
"line129"> 129</a> </span> :
875 <span class=
"lineNum" id=
"container130"><a name=
"130"></a><a href=
"#130" id=
"line130"> 130</a> </span> : // Serialization {{{
876 <span class=
"lineNum" id=
"container131"><a name=
"131"></a><a href=
"#131" id=
"line131"> 131</a> </span> : /**
877 <span class=
"lineNum" id=
"container132"><a name=
"132"></a><a href=
"#132" id=
"line132"> 132</a> </span> : * serialize -- by default with BSON
878 <span class=
"lineNum" id=
"container133"><a name=
"133"></a><a href=
"#133" id=
"line133"> 133</a> </span> : *
879 <span class=
"lineNum" id=
"container134"><a name=
"134"></a><a href=
"#134" id=
"line134"> 134</a> </span> : * @param object $object
880 <span class=
"lineNum" id=
"container135"><a name=
"135"></a><a href=
"#135" id=
"line135"> 135</a> </span> : *
881 <span class=
"lineNum" id=
"container136"><a name=
"136"></a><a href=
"#136" id=
"line136"> 136</a> </span> : * @return string
882 <span class=
"lineNum" id=
"container137"><a name=
"137"></a><a href=
"#137" id=
"line137"> 137</a> </span> : */
883 <span class=
"lineNum" id=
"container138"><a name=
"138"></a><a href=
"#138" id=
"line138"> 138</a> </span> : function serialize($object)
884 <span class=
"lineNum" id=
"container139"><a name=
"139"></a><a href=
"#139" id=
"line139"> 139</a> </span> : {
885 <span class=
"lineNum" id=
"container140"><a name=
"140"></a><a href=
"#140" id=
"line140"> 140</a> </span><span class=
"lineCov"> 5 : return bson_encode($object);
</span>
886 <span class=
"lineNum" id=
"container141"><a name=
"141"></a><a href=
"#141" id=
"line141"> 141</a> </span><span class=
"lineDeadCode"> : }
</span>
887 <span class=
"lineNum" id=
"container142"><a name=
"142"></a><a href=
"#142" id=
"line142"> 142</a> </span> :
888 <span class=
"lineNum" id=
"container143"><a name=
"143"></a><a href=
"#143" id=
"line143"> 143</a> </span> : /**
889 <span class=
"lineNum" id=
"container144"><a name=
"144"></a><a href=
"#144" id=
"line144"> 144</a> </span> : * deserialize -- by default with BSON
890 <span class=
"lineNum" id=
"container145"><a name=
"145"></a><a href=
"#145" id=
"line145"> 145</a> </span> : *
891 <span class=
"lineNum" id=
"container146"><a name=
"146"></a><a href=
"#146" id=
"line146"> 146</a> </span> : * @param string $string
892 <span class=
"lineNum" id=
"container147"><a name=
"147"></a><a href=
"#147" id=
"line147"> 147</a> </span> : *
893 <span class=
"lineNum" id=
"container148"><a name=
"148"></a><a href=
"#148" id=
"line148"> 148</a> </span> : * @return object
894 <span class=
"lineNum" id=
"container149"><a name=
"149"></a><a href=
"#149" id=
"line149"> 149</a> </span> : */
895 <span class=
"lineNum" id=
"container150"><a name=
"150"></a><a href=
"#150" id=
"line150"> 150</a> </span> : function deserialize($string)
896 <span class=
"lineNum" id=
"container151"><a name=
"151"></a><a href=
"#151" id=
"line151"> 151</a> </span> : {
897 <span class=
"lineNum" id=
"container152"><a name=
"152"></a><a href=
"#152" id=
"line152"> 152</a> </span><span class=
"lineCov"> 5 : return bson_decode($string);
</span>
898 <span class=
"lineNum" id=
"container153"><a name=
"153"></a><a href=
"#153" id=
"line153"> 153</a> </span><span class=
"lineDeadCode"> : }
</span>
899 <span class=
"lineNum" id=
"container154"><a name=
"154"></a><a href=
"#154" id=
"line154"> 154</a> </span> : // }}}
900 <span class=
"lineNum" id=
"container155"><a name=
"155"></a><a href=
"#155" id=
"line155"> 155</a> </span> :
901 <span class=
"lineNum" id=
"container156"><a name=
"156"></a><a href=
"#156" id=
"line156"> 156</a> </span> : // void getMulti (Array $keys, Array
&$objects) {{{
902 <span class=
"lineNum" id=
"container157"><a name=
"157"></a><a href=
"#157" id=
"line157"> 157</a> </span> : /**
903 <span class=
"lineNum" id=
"container158"><a name=
"158"></a><a href=
"#158" id=
"line158"> 158</a> </span> : * Simple but inneficient implementation of
904 <span class=
"lineNum" id=
"container159"><a name=
"159"></a><a href=
"#159" id=
"line159"> 159</a> </span> : * the getMulti. It retrieve multiple objects
905 <span class=
"lineNum" id=
"container160"><a name=
"160"></a><a href=
"#160" id=
"line160"> 160</a> </span> : * from the cache that matchs the array of keys.
906 <span class=
"lineNum" id=
"container161"><a name=
"161"></a><a href=
"#161" id=
"line161"> 161</a> </span> : *
907 <span class=
"lineNum" id=
"container162"><a name=
"162"></a><a href=
"#162" id=
"line162"> 162</a> </span> : * If the cache supports multiple
908 <span class=
"lineNum" id=
"container163"><a name=
"163"></a><a href=
"#163" id=
"line163"> 163</a> </span> : * get (as memcached does) it should be overrided.
909 <span class=
"lineNum" id=
"container164"><a name=
"164"></a><a href=
"#164" id=
"line164"> 164</a> </span> : *
910 <span class=
"lineNum" id=
"container165"><a name=
"165"></a><a href=
"#165" id=
"line165"> 165</a> </span> : *
911 <span class=
"lineNum" id=
"container166"><a name=
"166"></a><a href=
"#166" id=
"line166"> 166</a> </span> : * @param array $keys
912 <span class=
"lineNum" id=
"container167"><a name=
"167"></a><a href=
"#167" id=
"line167"> 167</a> </span> : * @param array
&$objects
913 <span class=
"lineNum" id=
"container168"><a name=
"168"></a><a href=
"#168" id=
"line168"> 168</a> </span> : *
914 <span class=
"lineNum" id=
"container169"><a name=
"169"></a><a href=
"#169" id=
"line169"> 169</a> </span> : */
915 <span class=
"lineNum" id=
"container170"><a name=
"170"></a><a href=
"#170" id=
"line170"> 170</a> </span> : function getMulti(Array $keys, Array
&$objects)
916 <span class=
"lineNum" id=
"container171"><a name=
"171"></a><a href=
"#171" id=
"line171"> 171</a> </span> : {
917 <span class=
"lineNum" id=
"container172"><a name=
"172"></a><a href=
"#172" id=
"line172"> 172</a> </span><span class=
"lineCov"> 5 : foreach ($keys as $key) {
</span>
918 <span class=
"lineNum" id=
"container173"><a name=
"173"></a><a href=
"#173" id=
"line173"> 173</a> </span><span class=
"lineCov"> 5 : if ($this-
>get($key, $objects[$key]) === FALSE) {
</span>
919 <span class=
"lineNum" id=
"container174"><a name=
"174"></a><a href=
"#174" id=
"line174"> 174</a> </span><span class=
"lineCov"> 1 : $objects[$key] = FALSE;
</span>
920 <span class=
"lineNum" id=
"container175"><a name=
"175"></a><a href=
"#175" id=
"line175"> 175</a> </span><span class=
"lineCov"> 1 : }
</span>
921 <span class=
"lineNum" id=
"container176"><a name=
"176"></a><a href=
"#176" id=
"line176"> 176</a> </span><span class=
"lineCov"> 5 : }
</span>
922 <span class=
"lineNum" id=
"container177"><a name=
"177"></a><a href=
"#177" id=
"line177"> 177</a> </span><span class=
"lineCov"> 5 : }
</span>
923 <span class=
"lineNum" id=
"container178"><a name=
"178"></a><a href=
"#178" id=
"line178"> 178</a> </span> : // }}}
924 <span class=
"lineNum" id=
"container179"><a name=
"179"></a><a href=
"#179" id=
"line179"> 179</a> </span> :
925 <span class=
"lineNum" id=
"container180"><a name=
"180"></a><a href=
"#180" id=
"line180"> 180</a> </span> : // setMulti(Array $objects, Array $ttl) {{{
926 <span class=
"lineNum" id=
"container181"><a name=
"181"></a><a href=
"#181" id=
"line181"> 181</a> </span> : /**
927 <span class=
"lineNum" id=
"container182"><a name=
"182"></a><a href=
"#182" id=
"line182"> 182</a> </span> : * Simple but inneficient implementation of the
928 <span class=
"lineNum" id=
"container183"><a name=
"183"></a><a href=
"#183" id=
"line183"> 183</a> </span> : * setMulti, it basically push a set of objects
929 <span class=
"lineNum" id=
"container184"><a name=
"184"></a><a href=
"#184" id=
"line184"> 184</a> </span> : * to the cache at once.
930 <span class=
"lineNum" id=
"container185"><a name=
"185"></a><a href=
"#185" id=
"line185"> 185</a> </span> : *
931 <span class=
"lineNum" id=
"container186"><a name=
"186"></a><a href=
"#186" id=
"line186"> 186</a> </span> : * If the cache driver support this operation,
932 <span class=
"lineNum" id=
"container187"><a name=
"187"></a><a href=
"#187" id=
"line187"> 187</a> </span> : * this method should be overrided.
933 <span class=
"lineNum" id=
"container188"><a name=
"188"></a><a href=
"#188" id=
"line188"> 188</a> </span> : *
934 <span class=
"lineNum" id=
"container189"><a name=
"189"></a><a href=
"#189" id=
"line189"> 189</a> </span> : * @param Array $objects
935 <span class=
"lineNum" id=
"container190"><a name=
"190"></a><a href=
"#190" id=
"line190"> 190</a> </span> : * @param Array $ttl
936 <span class=
"lineNum" id=
"container191"><a name=
"191"></a><a href=
"#191" id=
"line191"> 191</a> </span> : *
937 <span class=
"lineNum" id=
"container192"><a name=
"192"></a><a href=
"#192" id=
"line192"> 192</a> </span> : * @retun voie
938 <span class=
"lineNum" id=
"container193"><a name=
"193"></a><a href=
"#193" id=
"line193"> 193</a> </span> : */
939 <span class=
"lineNum" id=
"container194"><a name=
"194"></a><a href=
"#194" id=
"line194"> 194</a> </span> : function setMulti(Array $objects, Array $ttl)
940 <span class=
"lineNum" id=
"container195"><a name=
"195"></a><a href=
"#195" id=
"line195"> 195</a> </span> : {
941 <span class=
"lineNum" id=
"container196"><a name=
"196"></a><a href=
"#196" id=
"line196"> 196</a> </span><span class=
"lineCov"> 4 : foreach ($objects as $id =
> $value) {
</span>
942 <span class=
"lineNum" id=
"container197"><a name=
"197"></a><a href=
"#197" id=
"line197"> 197</a> </span><span class=
"lineCov"> 4 : if (!isset($ttl[$id])) {
</span>
943 <span class=
"lineNum" id=
"container198"><a name=
"198"></a><a href=
"#198" id=
"line198"> 198</a> </span><span class=
"lineCov"> 1 : $ttl[$id] =
3600;
</span>
944 <span class=
"lineNum" id=
"container199"><a name=
"199"></a><a href=
"#199" id=
"line199"> 199</a> </span><span class=
"lineCov"> 1 : }
</span>
945 <span class=
"lineNum" id=
"container200"><a name=
"200"></a><a href=
"#200" id=
"line200"> 200</a> </span><span class=
"lineCov"> 4 : $this-
>set($id, $value, $ttl[$id]);
</span>
946 <span class=
"lineNum" id=
"container201"><a name=
"201"></a><a href=
"#201" id=
"line201"> 201</a> </span><span class=
"lineCov"> 4 : }
</span>
947 <span class=
"lineNum" id=
"container202"><a name=
"202"></a><a href=
"#202" id=
"line202"> 202</a> </span><span class=
"lineCov"> 4 : }
</span>
948 <span class=
"lineNum" id=
"container203"><a name=
"203"></a><a href=
"#203" id=
"line203"> 203</a> </span> : // }}}
949 <span class=
"lineNum" id=
"container204"><a name=
"204"></a><a href=
"#204" id=
"line204"> 204</a> </span> :
950 <span class=
"lineNum" id=
"container205"><a name=
"205"></a><a href=
"#205" id=
"line205"> 205</a> </span> : abstract function get($key,
&$object);
951 <span class=
"lineNum" id=
"container206"><a name=
"206"></a><a href=
"#206" id=
"line206"> 206</a> </span> :
952 <span class=
"lineNum" id=
"container207"><a name=
"207"></a><a href=
"#207" id=
"line207"> 207</a> </span> : abstract function set($key, $document, $ttl);
953 <span class=
"lineNum" id=
"container208"><a name=
"208"></a><a href=
"#208" id=
"line208"> 208</a> </span> :
954 <span class=
"lineNum" id=
"container209"><a name=
"209"></a><a href=
"#209" id=
"line209"> 209</a> </span> : abstract function delete(Array $key);
955 <span class=
"lineNum" id=
"container210"><a name=
"210"></a><a href=
"#210" id=
"line210"> 210</a> </span> :
956 <span class=
"lineNum" id=
"container211"><a name=
"211"></a><a href=
"#211" id=
"line211"> 211</a> </span> : }
957 <span class=
"lineNum" id=
"container212"><a name=
"212"></a><a href=
"#212" id=
"line212"> 212</a> </span> :
958 <span class=
"lineNum" id=
"container213"><a name=
"213"></a><a href=
"#213" id=
"line213"> 213</a> </span> : /**
959 <span class=
"lineNum" id=
"container214"><a name=
"214"></a><a href=
"#214" id=
"line214"> 214</a> </span> : * CacheDriver
960 <span class=
"lineNum" id=
"container215"><a name=
"215"></a><a href=
"#215" id=
"line215"> 215</a> </span> : *
961 <span class=
"lineNum" id=
"container216"><a name=
"216"></a><a href=
"#216" id=
"line216"> 216</a> </span> : * Plug-in which adds cache capabilities to all
962 <span class=
"lineNum" id=
"container217"><a name=
"217"></a><a href=
"#217" id=
"line217"> 217</a> </span> : * ActiveMongo objects. The cache could be enabled
963 <span class=
"lineNum" id=
"container218"><a name=
"218"></a><a href=
"#218" id=
"line218"> 218</a> </span> : * for all objects (by default disabled), or for specified
964 <span class=
"lineNum" id=
"container219"><a name=
"219"></a><a href=
"#219" id=
"line219"> 219</a> </span> : * objects which has the static property cacheable to TRUE.
965 <span class=
"lineNum" id=
"container220"><a name=
"220"></a><a href=
"#220" id=
"line220"> 220</a> </span> : *
966 <span class=
"lineNum" id=
"container221"><a name=
"221"></a><a href=
"#221" id=
"line221"> 221</a> </span> : * At query time is also posible to disable the cache, passing
967 <span class=
"lineNum" id=
"container222"><a name=
"222"></a><a href=
"#222" id=
"line222"> 222</a> </span> : * false to doQuery, also this method will override the cache
968 <span class=
"lineNum" id=
"container223"><a name=
"223"></a><a href=
"#223" id=
"line223"> 223</a> </span> : * values if the query can use cache.
969 <span class=
"lineNum" id=
"container224"><a name=
"224"></a><a href=
"#224" id=
"line224"> 224</a> </span> : *
970 <span class=
"lineNum" id=
"container225"><a name=
"225"></a><a href=
"#225" id=
"line225"> 225</a> </span> : * @author César D. Rodas
<crodas@php.net
>
971 <span class=
"lineNum" id=
"container226"><a name=
"226"></a><a href=
"#226" id=
"line226"> 226</a> </span> : * @license BSD License
972 <span class=
"lineNum" id=
"container227"><a name=
"227"></a><a href=
"#227" id=
"line227"> 227</a> </span> : * @package ActiveMongo
973 <span class=
"lineNum" id=
"container228"><a name=
"228"></a><a href=
"#228" id=
"line228"> 228</a> </span> : * @version
1.0
974 <span class=
"lineNum" id=
"container229"><a name=
"229"></a><a href=
"#229" id=
"line229"> 229</a> </span> : */
975 <span class=
"lineNum" id=
"container230"><a name=
"230"></a><a href=
"#230" id=
"line230"> 230</a> </span> : final class ActiveMongo_Cache
976 <span class=
"lineNum" id=
"container231"><a name=
"231"></a><a href=
"#231" id=
"line231"> 231</a> </span> : {
977 <span class=
"lineNum" id=
"container232"><a name=
"232"></a><a href=
"#232" id=
"line232"> 232</a> </span> : private static $instance;
978 <span class=
"lineNum" id=
"container233"><a name=
"233"></a><a href=
"#233" id=
"line233"> 233</a> </span> : private $enabled;
979 <span class=
"lineNum" id=
"container234"><a name=
"234"></a><a href=
"#234" id=
"line234"> 234</a> </span> : private $driver;
980 <span class=
"lineNum" id=
"container235"><a name=
"235"></a><a href=
"#235" id=
"line235"> 235</a> </span> :
981 <span class=
"lineNum" id=
"container236"><a name=
"236"></a><a href=
"#236" id=
"line236"> 236</a> </span> : // __construct() {{{
982 <span class=
"lineNum" id=
"container237"><a name=
"237"></a><a href=
"#237" id=
"line237"> 237</a> </span> : /**
983 <span class=
"lineNum" id=
"container238"><a name=
"238"></a><a href=
"#238" id=
"line238"> 238</a> </span> : * Class contructor
984 <span class=
"lineNum" id=
"container239"><a name=
"239"></a><a href=
"#239" id=
"line239"> 239</a> </span> : *
985 <span class=
"lineNum" id=
"container240"><a name=
"240"></a><a href=
"#240" id=
"line240"> 240</a> </span> : * This is class is private, so it can be contructed
986 <span class=
"lineNum" id=
"container241"><a name=
"241"></a><a href=
"#241" id=
"line241"> 241</a> </span> : * only using the singleton interfaz.
987 <span class=
"lineNum" id=
"container242"><a name=
"242"></a><a href=
"#242" id=
"line242"> 242</a> </span> : *
988 <span class=
"lineNum" id=
"container243"><a name=
"243"></a><a href=
"#243" id=
"line243"> 243</a> </span> : * This method also setup all needed hooks
989 <span class=
"lineNum" id=
"container244"><a name=
"244"></a><a href=
"#244" id=
"line244"> 244</a> </span> : *
990 <span class=
"lineNum" id=
"container245"><a name=
"245"></a><a href=
"#245" id=
"line245"> 245</a> </span> : * @return void
991 <span class=
"lineNum" id=
"container246"><a name=
"246"></a><a href=
"#246" id=
"line246"> 246</a> </span> : */
992 <span class=
"lineNum" id=
"container247"><a name=
"247"></a><a href=
"#247" id=
"line247"> 247</a> </span> : private function __construct()
993 <span class=
"lineNum" id=
"container248"><a name=
"248"></a><a href=
"#248" id=
"line248"> 248</a> </span> : {
994 <span class=
"lineNum" id=
"container249"><a name=
"249"></a><a href=
"#249" id=
"line249"> 249</a> </span><span class=
"lineCov"> 1 : ActiveMongo::addEvent('before_query', array($this, 'QueryRead'));
</span>
995 <span class=
"lineNum" id=
"container250"><a name=
"250"></a><a href=
"#250" id=
"line250"> 250</a> </span><span class=
"lineCov"> 1 : ActiveMongo::addEvent('after_query', array($this, 'QuerySave'));
</span>
996 <span class=
"lineNum" id=
"container251"><a name=
"251"></a><a href=
"#251" id=
"line251"> 251</a> </span><span class=
"lineCov"> 1 : ActiveMongo::addEvent('after_create', array($this, 'UpdateDocumentHook'));
</span>
997 <span class=
"lineNum" id=
"container252"><a name=
"252"></a><a href=
"#252" id=
"line252"> 252</a> </span><span class=
"lineCov"> 1 : ActiveMongo::addEvent('after_update', array($this, 'UpdateDocumentHook'));
</span>
998 <span class=
"lineNum" id=
"container253"><a name=
"253"></a><a href=
"#253" id=
"line253"> 253</a> </span><span class=
"lineCov"> 1 : }
</span>
999 <span class=
"lineNum" id=
"container254"><a name=
"254"></a><a href=
"#254" id=
"line254"> 254</a> </span> : // }}}
1000 <span class=
"lineNum" id=
"container255"><a name=
"255"></a><a href=
"#255" id=
"line255"> 255</a> </span> :
1001 <span class=
"lineNum" id=
"container256"><a name=
"256"></a><a href=
"#256" id=
"line256"> 256</a> </span> : // Init() {{{
1002 <span class=
"lineNum" id=
"container257"><a name=
"257"></a><a href=
"#257" id=
"line257"> 257</a> </span> : /**
1003 <span class=
"lineNum" id=
"container258"><a name=
"258"></a><a href=
"#258" id=
"line258"> 258</a> </span> : * Initialize the Cache system, this is done
1004 <span class=
"lineNum" id=
"container259"><a name=
"259"></a><a href=
"#259" id=
"line259"> 259</a> </span> : * automatically.
1005 <span class=
"lineNum" id=
"container260"><a name=
"260"></a><a href=
"#260" id=
"line260"> 260</a> </span> : *
1006 <span class=
"lineNum" id=
"container261"><a name=
"261"></a><a href=
"#261" id=
"line261"> 261</a> </span> : * @return void
1007 <span class=
"lineNum" id=
"container262"><a name=
"262"></a><a href=
"#262" id=
"line262"> 262</a> </span> : */
1008 <span class=
"lineNum" id=
"container263"><a name=
"263"></a><a href=
"#263" id=
"line263"> 263</a> </span> : public static function Init()
1009 <span class=
"lineNum" id=
"container264"><a name=
"264"></a><a href=
"#264" id=
"line264"> 264</a> </span> : {
1010 <span class=
"lineNum" id=
"container265"><a name=
"265"></a><a href=
"#265" id=
"line265"> 265</a> </span><span class=
"lineCov"> 2 : if (self::$instance) {
</span>
1011 <span class=
"lineNum" id=
"container266"><a name=
"266"></a><a href=
"#266" id=
"line266"> 266</a> </span><span class=
"lineCov"> 1 : return;
</span>
1012 <span class=
"lineNum" id=
"container267"><a name=
"267"></a><a href=
"#267" id=
"line267"> 267</a> </span><span class=
"lineDeadCode"> : }
</span>
1013 <span class=
"lineNum" id=
"container268"><a name=
"268"></a><a href=
"#268" id=
"line268"> 268</a> </span><span class=
"lineCov"> 1 : self::$instance = new ActiveMongo_Cache;
</span>
1014 <span class=
"lineNum" id=
"container269"><a name=
"269"></a><a href=
"#269" id=
"line269"> 269</a> </span><span class=
"lineCov"> 1 : }
</span>
1015 <span class=
"lineNum" id=
"container270"><a name=
"270"></a><a href=
"#270" id=
"line270"> 270</a> </span> : // }}}
1016 <span class=
"lineNum" id=
"container271"><a name=
"271"></a><a href=
"#271" id=
"line271"> 271</a> </span> :
1017 <span class=
"lineNum" id=
"container272"><a name=
"272"></a><a href=
"#272" id=
"line272"> 272</a> </span> : // setDriver(CacheDriver $driver) {{{
1018 <span class=
"lineNum" id=
"container273"><a name=
"273"></a><a href=
"#273" id=
"line273"> 273</a> </span> : /**
1019 <span class=
"lineNum" id=
"container274"><a name=
"274"></a><a href=
"#274" id=
"line274"> 274</a> </span> : * Set the CacheDriver object that will be used
1020 <span class=
"lineNum" id=
"container275"><a name=
"275"></a><a href=
"#275" id=
"line275"> 275</a> </span> : * to cache object, must be a sub-class of CacheDriver
1021 <span class=
"lineNum" id=
"container276"><a name=
"276"></a><a href=
"#276" id=
"line276"> 276</a> </span> : *
1022 <span class=
"lineNum" id=
"container277"><a name=
"277"></a><a href=
"#277" id=
"line277"> 277</a> </span> : * @param CacheDriver $driver
1023 <span class=
"lineNum" id=
"container278"><a name=
"278"></a><a href=
"#278" id=
"line278"> 278</a> </span> : *
1024 <span class=
"lineNum" id=
"container279"><a name=
"279"></a><a href=
"#279" id=
"line279"> 279</a> </span> : * @return void
1025 <span class=
"lineNum" id=
"container280"><a name=
"280"></a><a href=
"#280" id=
"line280"> 280</a> </span> : */
1026 <span class=
"lineNum" id=
"container281"><a name=
"281"></a><a href=
"#281" id=
"line281"> 281</a> </span> : public static function setDriver(CacheDriver $driver)
1027 <span class=
"lineNum" id=
"container282"><a name=
"282"></a><a href=
"#282" id=
"line282"> 282</a> </span> : {
1028 <span class=
"lineNum" id=
"container283"><a name=
"283"></a><a href=
"#283" id=
"line283"> 283</a> </span><span class=
"lineCov"> 1 : self::Init();
</span>
1029 <span class=
"lineNum" id=
"container284"><a name=
"284"></a><a href=
"#284" id=
"line284"> 284</a> </span><span class=
"lineCov"> 1 : self::$instance-
>driver =
&$driver;
</span>
1030 <span class=
"lineNum" id=
"container285"><a name=
"285"></a><a href=
"#285" id=
"line285"> 285</a> </span><span class=
"lineCov"> 1 : }
</span>
1031 <span class=
"lineNum" id=
"container286"><a name=
"286"></a><a href=
"#286" id=
"line286"> 286</a> </span> : // }}}
1032 <span class=
"lineNum" id=
"container287"><a name=
"287"></a><a href=
"#287" id=
"line287"> 287</a> </span> :
1033 <span class=
"lineNum" id=
"container288"><a name=
"288"></a><a href=
"#288" id=
"line288"> 288</a> </span> : // enable() {{{
1034 <span class=
"lineNum" id=
"container289"><a name=
"289"></a><a href=
"#289" id=
"line289"> 289</a> </span> : /**
1035 <span class=
"lineNum" id=
"container290"><a name=
"290"></a><a href=
"#290" id=
"line290"> 290</a> </span> : * Enable the cache for all classes, even those
1036 <span class=
"lineNum" id=
"container291"><a name=
"291"></a><a href=
"#291" id=
"line291"> 291</a> </span> : * which does not has the state property $cacheable
1037 <span class=
"lineNum" id=
"container292"><a name=
"292"></a><a href=
"#292" id=
"line292"> 292</a> </span> : *
1038 <span class=
"lineNum" id=
"container293"><a name=
"293"></a><a href=
"#293" id=
"line293"> 293</a> </span> : * @return void
1039 <span class=
"lineNum" id=
"container294"><a name=
"294"></a><a href=
"#294" id=
"line294"> 294</a> </span> : */
1040 <span class=
"lineNum" id=
"container295"><a name=
"295"></a><a href=
"#295" id=
"line295"> 295</a> </span> : public static function enable()
1041 <span class=
"lineNum" id=
"container296"><a name=
"296"></a><a href=
"#296" id=
"line296"> 296</a> </span> : {
1042 <span class=
"lineNum" id=
"container297"><a name=
"297"></a><a href=
"#297" id=
"line297"> 297</a> </span><span class=
"lineNoCov"> 0 : self::Init();
</span>
1043 <span class=
"lineNum" id=
"container298"><a name=
"298"></a><a href=
"#298" id=
"line298"> 298</a> </span><span class=
"lineNoCov"> 0 : self::$instance-
>enabled = TRUE;
</span>
1044 <span class=
"lineNum" id=
"container299"><a name=
"299"></a><a href=
"#299" id=
"line299"> 299</a> </span><span class=
"lineNoCov"> 0 : }
</span>
1045 <span class=
"lineNum" id=
"container300"><a name=
"300"></a><a href=
"#300" id=
"line300"> 300</a> </span> : // }}}
1046 <span class=
"lineNum" id=
"container301"><a name=
"301"></a><a href=
"#301" id=
"line301"> 301</a> </span> :
1047 <span class=
"lineNum" id=
"container302"><a name=
"302"></a><a href=
"#302" id=
"line302"> 302</a> </span> : // disable() {{{
1048 <span class=
"lineNum" id=
"container303"><a name=
"303"></a><a href=
"#303" id=
"line303"> 303</a> </span> : /**
1049 <span class=
"lineNum" id=
"container304"><a name=
"304"></a><a href=
"#304" id=
"line304"> 304</a> </span> : * Disable the cache for all classes, except those
1050 <span class=
"lineNum" id=
"container305"><a name=
"305"></a><a href=
"#305" id=
"line305"> 305</a> </span> : * which has the state property $cacheable =TRUE
1051 <span class=
"lineNum" id=
"container306"><a name=
"306"></a><a href=
"#306" id=
"line306"> 306</a> </span> : *
1052 <span class=
"lineNum" id=
"container307"><a name=
"307"></a><a href=
"#307" id=
"line307"> 307</a> </span> : * @return void
1053 <span class=
"lineNum" id=
"container308"><a name=
"308"></a><a href=
"#308" id=
"line308"> 308</a> </span> : */
1054 <span class=
"lineNum" id=
"container309"><a name=
"309"></a><a href=
"#309" id=
"line309"> 309</a> </span> : public static function disable()
1055 <span class=
"lineNum" id=
"container310"><a name=
"310"></a><a href=
"#310" id=
"line310"> 310</a> </span> : {
1056 <span class=
"lineNum" id=
"container311"><a name=
"311"></a><a href=
"#311" id=
"line311"> 311</a> </span><span class=
"lineNoCov"> 0 : self::Init();
</span>
1057 <span class=
"lineNum" id=
"container312"><a name=
"312"></a><a href=
"#312" id=
"line312"> 312</a> </span><span class=
"lineNoCov"> 0 : self::$instance-
>enabled = FALSE;
</span>
1058 <span class=
"lineNum" id=
"container313"><a name=
"313"></a><a href=
"#313" id=
"line313"> 313</a> </span><span class=
"lineNoCov"> 0 : }
</span>
1059 <span class=
"lineNum" id=
"container314"><a name=
"314"></a><a href=
"#314" id=
"line314"> 314</a> </span> : // }}}
1060 <span class=
"lineNum" id=
"container315"><a name=
"315"></a><a href=
"#315" id=
"line315"> 315</a> </span> :
1061 <span class=
"lineNum" id=
"container316"><a name=
"316"></a><a href=
"#316" id=
"line316"> 316</a> </span> : // canUseCache($class) {{{
1062 <span class=
"lineNum" id=
"container317"><a name=
"317"></a><a href=
"#317" id=
"line317"> 317</a> </span> : /**
1063 <span class=
"lineNum" id=
"container318"><a name=
"318"></a><a href=
"#318" id=
"line318"> 318</a> </span> : * Return TRUE is the current query
1064 <span class=
"lineNum" id=
"container319"><a name=
"319"></a><a href=
"#319" id=
"line319"> 319</a> </span> : * can use a cache.
1065 <span class=
"lineNum" id=
"container320"><a name=
"320"></a><a href=
"#320" id=
"line320"> 320</a> </span> : *
1066 <span class=
"lineNum" id=
"container321"><a name=
"321"></a><a href=
"#321" id=
"line321"> 321</a> </span> : * @param string $class Class name
1067 <span class=
"lineNum" id=
"container322"><a name=
"322"></a><a href=
"#322" id=
"line322"> 322</a> </span> : *
1068 <span class=
"lineNum" id=
"container323"><a name=
"323"></a><a href=
"#323" id=
"line323"> 323</a> </span> : * @return bool
1069 <span class=
"lineNum" id=
"container324"><a name=
"324"></a><a href=
"#324" id=
"line324"> 324</a> </span> : */
1070 <span class=
"lineNum" id=
"container325"><a name=
"325"></a><a href=
"#325" id=
"line325"> 325</a> </span> : final protected function canUseCache($class)
1071 <span class=
"lineNum" id=
"container326"><a name=
"326"></a><a href=
"#326" id=
"line326"> 326</a> </span> : {
1072 <span class=
"lineNum" id=
"container327"><a name=
"327"></a><a href=
"#327" id=
"line327"> 327</a> </span><span class=
"lineCov"> 5 : if (!$this-
>driver InstanceOf CacheDriver) {
</span>
1073 <span class=
"lineNum" id=
"container328"><a name=
"328"></a><a href=
"#328" id=
"line328"> 328</a> </span><span class=
"lineNoCov"> 0 : return FALSE;
</span>
1074 <span class=
"lineNum" id=
"container329"><a name=
"329"></a><a href=
"#329" id=
"line329"> 329</a> </span><span class=
"lineDeadCode"> : }
</span>
1075 <span class=
"lineNum" id=
"container330"><a name=
"330"></a><a href=
"#330" id=
"line330"> 330</a> </span><span class=
"lineCov"> 5 : $enable = isset($class::$cacheable) ? $class::$cacheable : $this-
>enabled;
</span>
1076 <span class=
"lineNum" id=
"container331"><a name=
"331"></a><a href=
"#331" id=
"line331"> 331</a> </span><span class=
"lineCov"> 5 : return $enable;
</span>
1077 <span class=
"lineNum" id=
"container332"><a name=
"332"></a><a href=
"#332" id=
"line332"> 332</a> </span><span class=
"lineDeadCode"> : }
</span>
1078 <span class=
"lineNum" id=
"container333"><a name=
"333"></a><a href=
"#333" id=
"line333"> 333</a> </span> : // }}}
1079 <span class=
"lineNum" id=
"container334"><a name=
"334"></a><a href=
"#334" id=
"line334"> 334</a> </span> :
1080 <span class=
"lineNum" id=
"container335"><a name=
"335"></a><a href=
"#335" id=
"line335"> 335</a> </span> : // getQueryID(Array $query_docuement) {{{
1081 <span class=
"lineNum" id=
"container336"><a name=
"336"></a><a href=
"#336" id=
"line336"> 336</a> </span> : /**
1082 <span class=
"lineNum" id=
"container337"><a name=
"337"></a><a href=
"#337" id=
"line337"> 337</a> </span> : * Get a ID from a given query, right now it is very
1083 <span class=
"lineNum" id=
"container338"><a name=
"338"></a><a href=
"#338" id=
"line338"> 338</a> </span> : * simple, it serialize the query document, it should
1084 <span class=
"lineNum" id=
"container339"><a name=
"339"></a><a href=
"#339" id=
"line339"> 339</a> </span> : * be improved to easily delete old queries
1085 <span class=
"lineNum" id=
"container340"><a name=
"340"></a><a href=
"#340" id=
"line340"> 340</a> </span> : *
1086 <span class=
"lineNum" id=
"container341"><a name=
"341"></a><a href=
"#341" id=
"line341"> 341</a> </span> : * @param array $query_document
1087 <span class=
"lineNum" id=
"container342"><a name=
"342"></a><a href=
"#342" id=
"line342"> 342</a> </span> : *
1088 <span class=
"lineNum" id=
"container343"><a name=
"343"></a><a href=
"#343" id=
"line343"> 343</a> </span> : * @return string
1089 <span class=
"lineNum" id=
"container344"><a name=
"344"></a><a href=
"#344" id=
"line344"> 344</a> </span> : */
1090 <span class=
"lineNum" id=
"container345"><a name=
"345"></a><a href=
"#345" id=
"line345"> 345</a> </span> : final protected function getQueryID($query_document)
1091 <span class=
"lineNum" id=
"container346"><a name=
"346"></a><a href=
"#346" id=
"line346"> 346</a> </span> : {
1092 <span class=
"lineNum" id=
"container347"><a name=
"347"></a><a href=
"#347" id=
"line347"> 347</a> </span> : /* TODO: Peform some sort of sorting */
1093 <span class=
"lineNum" id=
"container348"><a name=
"348"></a><a href=
"#348" id=
"line348"> 348</a> </span> : /* to treat queries with same parameters but */
1094 <span class=
"lineNum" id=
"container349"><a name=
"349"></a><a href=
"#349" id=
"line349"> 349</a> </span> : /* different order equal */
1095 <span class=
"lineNum" id=
"container350"><a name=
"350"></a><a href=
"#350" id=
"line350"> 350</a> </span> :
1096 <span class=
"lineNum" id=
"container351"><a name=
"351"></a><a href=
"#351" id=
"line351"> 351</a> </span><span class=
"lineCov"> 5 : $id = $this-
>driver-
>serialize($query_document);
</span>
1097 <span class=
"lineNum" id=
"container352"><a name=
"352"></a><a href=
"#352" id=
"line352"> 352</a> </span> :
1098 <span class=
"lineNum" id=
"container353"><a name=
"353"></a><a href=
"#353" id=
"line353"> 353</a> </span><span class=
"lineCov"> 5 : return sha1($id);
</span>
1099 <span class=
"lineNum" id=
"container354"><a name=
"354"></a><a href=
"#354" id=
"line354"> 354</a> </span><span class=
"lineDeadCode"> : }
</span>
1100 <span class=
"lineNum" id=
"container355"><a name=
"355"></a><a href=
"#355" id=
"line355"> 355</a> </span> : // }}}
1101 <span class=
"lineNum" id=
"container356"><a name=
"356"></a><a href=
"#356" id=
"line356"> 356</a> </span> :
1102 <span class=
"lineNum" id=
"container357"><a name=
"357"></a><a href=
"#357" id=
"line357"> 357</a> </span> : // deleteObject($id) {{{
1103 <span class=
"lineNum" id=
"container358"><a name=
"358"></a><a href=
"#358" id=
"line358"> 358</a> </span> : /**
1104 <span class=
"lineNum" id=
"container359"><a name=
"359"></a><a href=
"#359" id=
"line359"> 359</a> </span> : * Delete an object from the cache by its $id
1105 <span class=
"lineNum" id=
"container360"><a name=
"360"></a><a href=
"#360" id=
"line360"> 360</a> </span> : *
1106 <span class=
"lineNum" id=
"container361"><a name=
"361"></a><a href=
"#361" id=
"line361"> 361</a> </span> : * @return void
1107 <span class=
"lineNum" id=
"container362"><a name=
"362"></a><a href=
"#362" id=
"line362"> 362</a> </span> : */
1108 <span class=
"lineNum" id=
"container363"><a name=
"363"></a><a href=
"#363" id=
"line363"> 363</a> </span> : final static function deleteObject($id)
1109 <span class=
"lineNum" id=
"container364"><a name=
"364"></a><a href=
"#364" id=
"line364"> 364</a> </span> : {
1110 <span class=
"lineNum" id=
"container365"><a name=
"365"></a><a href=
"#365" id=
"line365"> 365</a> </span><span class=
"lineCov"> 1 : self::Init();
</span>
1111 <span class=
"lineNum" id=
"container366"><a name=
"366"></a><a href=
"#366" id=
"line366"> 366</a> </span><span class=
"lineCov"> 1 : $self = self::$instance;
</span>
1112 <span class=
"lineNum" id=
"container367"><a name=
"367"></a><a href=
"#367" id=
"line367"> 367</a> </span><span class=
"lineCov"> 1 : $self-
>driver-
>delete(array((string)$id));
</span>
1113 <span class=
"lineNum" id=
"container368"><a name=
"368"></a><a href=
"#368" id=
"line368"> 368</a> </span><span class=
"lineCov"> 1 : }
</span>
1114 <span class=
"lineNum" id=
"container369"><a name=
"369"></a><a href=
"#369" id=
"line369"> 369</a> </span> : // }}}
1115 <span class=
"lineNum" id=
"container370"><a name=
"370"></a><a href=
"#370" id=
"line370"> 370</a> </span> :
1116 <span class=
"lineNum" id=
"container371"><a name=
"371"></a><a href=
"#371" id=
"line371"> 371</a> </span> : // mixed getObject($id) {{{
1117 <span class=
"lineNum" id=
"container372"><a name=
"372"></a><a href=
"#372" id=
"line372"> 372</a> </span> : /**
1118 <span class=
"lineNum" id=
"container373"><a name=
"373"></a><a href=
"#373" id=
"line373"> 373</a> </span> : * Return an object from the cache, if it doesn't
1119 <span class=
"lineNum" id=
"container374"><a name=
"374"></a><a href=
"#374" id=
"line374"> 374</a> </span> : * exists it would return FALSE
1120 <span class=
"lineNum" id=
"container375"><a name=
"375"></a><a href=
"#375" id=
"line375"> 375</a> </span> : *
1121 <span class=
"lineNum" id=
"container376"><a name=
"376"></a><a href=
"#376" id=
"line376"> 376</a> </span> : * @param mixed $id
1122 <span class=
"lineNum" id=
"container377"><a name=
"377"></a><a href=
"#377" id=
"line377"> 377</a> </span> : * @return mixed $object
1123 <span class=
"lineNum" id=
"container378"><a name=
"378"></a><a href=
"#378" id=
"line378"> 378</a> </span> : *
1124 <span class=
"lineNum" id=
"container379"><a name=
"379"></a><a href=
"#379" id=
"line379"> 379</a> </span> : */
1125 <span class=
"lineNum" id=
"container380"><a name=
"380"></a><a href=
"#380" id=
"line380"> 380</a> </span> : final static function getObject($id)
1126 <span class=
"lineNum" id=
"container381"><a name=
"381"></a><a href=
"#381" id=
"line381"> 381</a> </span> : {
1127 <span class=
"lineNum" id=
"container382"><a name=
"382"></a><a href=
"#382" id=
"line382"> 382</a> </span><span class=
"lineCov"> 1 : self::Init();
</span>
1128 <span class=
"lineNum" id=
"container383"><a name=
"383"></a><a href=
"#383" id=
"line383"> 383</a> </span><span class=
"lineCov"> 1 : $self = self::$instance;
</span>
1129 <span class=
"lineNum" id=
"container384"><a name=
"384"></a><a href=
"#384" id=
"line384"> 384</a> </span><span class=
"lineCov"> 1 : if (!$self-
>driver) {
</span>
1130 <span class=
"lineNum" id=
"container385"><a name=
"385"></a><a href=
"#385" id=
"line385"> 385</a> </span><span class=
"lineNoCov"> 0 : return FALSE;
</span>
1131 <span class=
"lineNum" id=
"container386"><a name=
"386"></a><a href=
"#386" id=
"line386"> 386</a> </span><span class=
"lineDeadCode"> : }
</span>
1132 <span class=
"lineNum" id=
"container387"><a name=
"387"></a><a href=
"#387" id=
"line387"> 387</a> </span><span class=
"lineCov"> 1 : $object = FALSE;
</span>
1133 <span class=
"lineNum" id=
"container388"><a name=
"388"></a><a href=
"#388" id=
"line388"> 388</a> </span><span class=
"lineCov"> 1 : $self-
>driver-
>get((string)$id, $object);
</span>
1134 <span class=
"lineNum" id=
"container389"><a name=
"389"></a><a href=
"#389" id=
"line389"> 389</a> </span> :
1135 <span class=
"lineNum" id=
"container390"><a name=
"390"></a><a href=
"#390" id=
"line390"> 390</a> </span><span class=
"lineCov"> 1 : return $object;
</span>
1136 <span class=
"lineNum" id=
"container391"><a name=
"391"></a><a href=
"#391" id=
"line391"> 391</a> </span><span class=
"lineDeadCode"> : }
</span>
1137 <span class=
"lineNum" id=
"container392"><a name=
"392"></a><a href=
"#392" id=
"line392"> 392</a> </span> : // }}}
1138 <span class=
"lineNum" id=
"container393"><a name=
"393"></a><a href=
"#393" id=
"line393"> 393</a> </span> :
1139 <span class=
"lineNum" id=
"container394"><a name=
"394"></a><a href=
"#394" id=
"line394"> 394</a> </span> : // QueryRead($class, $query_document,
&$resultset, $use_cache=TRUE){{{
1140 <span class=
"lineNum" id=
"container395"><a name=
"395"></a><a href=
"#395" id=
"line395"> 395</a> </span> : /**
1141 <span class=
"lineNum" id=
"container396"><a name=
"396"></a><a href=
"#396" id=
"line396"> 396</a> </span> : * Return the resultset for the current query from the cache if the
1142 <span class=
"lineNum" id=
"container397"><a name=
"397"></a><a href=
"#397" id=
"line397"> 397</a> </span> : * cache is enabled, if the current query can be cacheable and if
1143 <span class=
"lineNum" id=
"container398"><a name=
"398"></a><a href=
"#398" id=
"line398"> 398</a> </span> : * it already exists on cache.
1144 <span class=
"lineNum" id=
"container399"><a name=
"399"></a><a href=
"#399" id=
"line399"> 399</a> </span> : *
1145 <span class=
"lineNum" id=
"container400"><a name=
"400"></a><a href=
"#400" id=
"line400"> 400</a> </span> : * @param string $class Class name
1146 <span class=
"lineNum" id=
"container401"><a name=
"401"></a><a href=
"#401" id=
"line401"> 401</a> </span> : * @param array $query_document Query sent to mongodb
1147 <span class=
"lineNum" id=
"container402"><a name=
"402"></a><a href=
"#402" id=
"line402"> 402</a> </span> : * @param array
&$resultset The resultset
1148 <span class=
"lineNum" id=
"container403"><a name=
"403"></a><a href=
"#403" id=
"line403"> 403</a> </span> : * @param bool $use_cache True if cache can be used
1149 <span class=
"lineNum" id=
"container404"><a name=
"404"></a><a href=
"#404" id=
"line404"> 404</a> </span> : *
1150 <span class=
"lineNum" id=
"container405"><a name=
"405"></a><a href=
"#405" id=
"line405"> 405</a> </span> : *
1151 <span class=
"lineNum" id=
"container406"><a name=
"406"></a><a href=
"#406" id=
"line406"> 406</a> </span> : * @return mixed FALSE or NULL
1152 <span class=
"lineNum" id=
"container407"><a name=
"407"></a><a href=
"#407" id=
"line407"> 407</a> </span> : */
1153 <span class=
"lineNum" id=
"container408"><a name=
"408"></a><a href=
"#408" id=
"line408"> 408</a> </span> : function QueryRead($class, $query_document,
&$resultset, $use_cache=TRUE)
1154 <span class=
"lineNum" id=
"container409"><a name=
"409"></a><a href=
"#409" id=
"line409"> 409</a> </span> : {
1155 <span class=
"lineNum" id=
"container410"><a name=
"410"></a><a href=
"#410" id=
"line410"> 410</a> </span><span class=
"lineCov"> 5 : if (!$this-
>canUseCache($class) || !$use_cache) {
</span>
1156 <span class=
"lineNum" id=
"container411"><a name=
"411"></a><a href=
"#411" id=
"line411"> 411</a> </span><span class=
"lineCov"> 2 : return;
</span>
1157 <span class=
"lineNum" id=
"container412"><a name=
"412"></a><a href=
"#412" id=
"line412"> 412</a> </span><span class=
"lineDeadCode"> : }
</span>
1158 <span class=
"lineNum" id=
"container413"><a name=
"413"></a><a href=
"#413" id=
"line413"> 413</a> </span> :
1159 <span class=
"lineNum" id=
"container414"><a name=
"414"></a><a href=
"#414" id=
"line414"> 414</a> </span><span class=
"lineCov"> 5 : $query_id = $this-
>getQueryID($query_document);
</span>
1160 <span class=
"lineNum" id=
"container415"><a name=
"415"></a><a href=
"#415" id=
"line415"> 415</a> </span> :
1161 <span class=
"lineNum" id=
"container416"><a name=
"416"></a><a href=
"#416" id=
"line416"> 416</a> </span><span class=
"lineCov"> 5 : if ($this-
>driver-
>get($query_id, $query_result) === FALSE) {
</span>
1162 <span class=
"lineNum" id=
"container417"><a name=
"417"></a><a href=
"#417" id=
"line417"> 417</a> </span><span class=
"lineCov"> 2 : return;
</span>
1163 <span class=
"lineNum" id=
"container418"><a name=
"418"></a><a href=
"#418" id=
"line418"> 418</a> </span><span class=
"lineDeadCode"> : }
</span>
1164 <span class=
"lineNum" id=
"container419"><a name=
"419"></a><a href=
"#419" id=
"line419"> 419</a> </span> :
1165 <span class=
"lineNum" id=
"container420"><a name=
"420"></a><a href=
"#420" id=
"line420"> 420</a> </span><span class=
"lineCov"> 5 : if (!is_array($query_result) || count($query_result) ==
0) {
</span>
1166 <span class=
"lineNum" id=
"container421"><a name=
"421"></a><a href=
"#421" id=
"line421"> 421</a> </span><span class=
"lineNoCov"> 0 : return;
</span>
1167 <span class=
"lineNum" id=
"container422"><a name=
"422"></a><a href=
"#422" id=
"line422"> 422</a> </span><span class=
"lineDeadCode"> : }
</span>
1168 <span class=
"lineNum" id=
"container423"><a name=
"423"></a><a href=
"#423" id=
"line423"> 423</a> </span> :
1169 <span class=
"lineNum" id=
"container424"><a name=
"424"></a><a href=
"#424" id=
"line424"> 424</a> </span><span class=
"lineCov"> 5 : $toquery = array();
</span>
1170 <span class=
"lineNum" id=
"container425"><a name=
"425"></a><a href=
"#425" id=
"line425"> 425</a> </span><span class=
"lineCov"> 5 : $result = array();
</span>
1171 <span class=
"lineNum" id=
"container426"><a name=
"426"></a><a href=
"#426" id=
"line426"> 426</a> </span> :
1172 <span class=
"lineNum" id=
"container427"><a name=
"427"></a><a href=
"#427" id=
"line427"> 427</a> </span><span class=
"lineCov"> 5 : $cache_ids = array_combine(array_keys($query_result), array_keys($query_result));
</span>
1173 <span class=
"lineNum" id=
"container428"><a name=
"428"></a><a href=
"#428" id=
"line428"> 428</a> </span><span class=
"lineCov"> 5 : $this-
>driver-
>getMulti($cache_ids, $result);
</span>
1174 <span class=
"lineNum" id=
"container429"><a name=
"429"></a><a href=
"#429" id=
"line429"> 429</a> </span> :
1175 <span class=
"lineNum" id=
"container430"><a name=
"430"></a><a href=
"#430" id=
"line430"> 430</a> </span><span class=
"lineCov"> 5 : foreach ($result as $id =
> $doc) {
</span>
1176 <span class=
"lineNum" id=
"container431"><a name=
"431"></a><a href=
"#431" id=
"line431"> 431</a> </span><span class=
"lineCov"> 5 : if (!is_array($doc)) {
</span>
1177 <span class=
"lineNum" id=
"container432"><a name=
"432"></a><a href=
"#432" id=
"line432"> 432</a> </span><span class=
"lineCov"> 1 : $toquery[$id] = $query_result[$id];
</span>
1178 <span class=
"lineNum" id=
"container433"><a name=
"433"></a><a href=
"#433" id=
"line433"> 433</a> </span><span class=
"lineCov"> 1 : }
</span>
1179 <span class=
"lineNum" id=
"container434"><a name=
"434"></a><a href=
"#434" id=
"line434"> 434</a> </span><span class=
"lineCov"> 5 : }
</span>
1180 <span class=
"lineNum" id=
"container435"><a name=
"435"></a><a href=
"#435" id=
"line435"> 435</a> </span> :
1181 <span class=
"lineNum" id=
"container436"><a name=
"436"></a><a href=
"#436" id=
"line436"> 436</a> </span><span class=
"lineCov"> 5 : if (count($toquery)
> 0) {
</span>
1182 <span class=
"lineNum" id=
"container437"><a name=
"437"></a><a href=
"#437" id=
"line437"> 437</a> </span><span class=
"lineCov"> 1 : $db = new $class;
</span>
1183 <span class=
"lineNum" id=
"container438"><a name=
"438"></a><a href=
"#438" id=
"line438"> 438</a> </span><span class=
"lineCov"> 1 : $db-
>where('_id IN', array_values($toquery));
</span>
1184 <span class=
"lineNum" id=
"container439"><a name=
"439"></a><a href=
"#439" id=
"line439"> 439</a> </span><span class=
"lineCov"> 1 : $db-
>doQuery(FALSE);
</span>
1185 <span class=
"lineNum" id=
"container440"><a name=
"440"></a><a href=
"#440" id=
"line440"> 440</a> </span><span class=
"lineCov"> 1 : $dresult = array();
</span>
1186 <span class=
"lineNum" id=
"container441"><a name=
"441"></a><a href=
"#441" id=
"line441"> 441</a> </span><span class=
"lineCov"> 1 : foreach ($db as $doc) {
</span>
1187 <span class=
"lineNum" id=
"container442"><a name=
"442"></a><a href=
"#442" id=
"line442"> 442</a> </span><span class=
"lineCov"> 1 : $dresult[$doc-
>key()] = $doc-
>getArray();
</span>
1188 <span class=
"lineNum" id=
"container443"><a name=
"443"></a><a href=
"#443" id=
"line443"> 443</a> </span><span class=
"lineCov"> 1 : }
</span>
1189 <span class=
"lineNum" id=
"container444"><a name=
"444"></a><a href=
"#444" id=
"line444"> 444</a> </span><span class=
"lineCov"> 1 : $this-
>driver-
>setMulti($dresult, array());
</span>
1190 <span class=
"lineNum" id=
"container445"><a name=
"445"></a><a href=
"#445" id=
"line445"> 445</a> </span><span class=
"lineCov"> 1 : $result = array_merge($result, $dresult);
</span>
1191 <span class=
"lineNum" id=
"container446"><a name=
"446"></a><a href=
"#446" id=
"line446"> 446</a> </span><span class=
"lineCov"> 1 : }
</span>
1192 <span class=
"lineNum" id=
"container447"><a name=
"447"></a><a href=
"#447" id=
"line447"> 447</a> </span> :
1193 <span class=
"lineNum" id=
"container448"><a name=
"448"></a><a href=
"#448" id=
"line448"> 448</a> </span> :
1194 <span class=
"lineNum" id=
"container449"><a name=
"449"></a><a href=
"#449" id=
"line449"> 449</a> </span><span class=
"lineCov"> 5 : $resultset = new CacheCursor($result);
</span>
1195 <span class=
"lineNum" id=
"container450"><a name=
"450"></a><a href=
"#450" id=
"line450"> 450</a> </span> :
1196 <span class=
"lineNum" id=
"container451"><a name=
"451"></a><a href=
"#451" id=
"line451"> 451</a> </span> : /* Return FALSE to prevent the execution of
1197 <span class=
"lineNum" id=
"container452"><a name=
"452"></a><a href=
"#452" id=
"line452"> 452</a> </span> : * any hook similar hook
1198 <span class=
"lineNum" id=
"container453"><a name=
"453"></a><a href=
"#453" id=
"line453"> 453</a> </span> : */
1199 <span class=
"lineNum" id=
"container454"><a name=
"454"></a><a href=
"#454" id=
"line454"> 454</a> </span><span class=
"lineCov"> 5 : return FALSE;
</span>
1200 <span class=
"lineNum" id=
"container455"><a name=
"455"></a><a href=
"#455" id=
"line455"> 455</a> </span><span class=
"lineDeadCode"> : }
</span>
1201 <span class=
"lineNum" id=
"container456"><a name=
"456"></a><a href=
"#456" id=
"line456"> 456</a> </span> : // }}}
1202 <span class=
"lineNum" id=
"container457"><a name=
"457"></a><a href=
"#457" id=
"line457"> 457</a> </span> :
1203 <span class=
"lineNum" id=
"container458"><a name=
"458"></a><a href=
"#458" id=
"line458"> 458</a> </span> : // QuerySave($class, $query_document, $cursor) {{{
1204 <span class=
"lineNum" id=
"container459"><a name=
"459"></a><a href=
"#459" id=
"line459"> 459</a> </span> : /**
1205 <span class=
"lineNum" id=
"container460"><a name=
"460"></a><a href=
"#460" id=
"line460"> 460</a> </span> : * Save the current resultset into the cache
1206 <span class=
"lineNum" id=
"container461"><a name=
"461"></a><a href=
"#461" id=
"line461"> 461</a> </span> : *
1207 <span class=
"lineNum" id=
"container462"><a name=
"462"></a><a href=
"#462" id=
"line462"> 462</a> </span> : * @param string $class
1208 <span class=
"lineNum" id=
"container463"><a name=
"463"></a><a href=
"#463" id=
"line463"> 463</a> </span> : * @param array $query_document
1209 <span class=
"lineNum" id=
"container464"><a name=
"464"></a><a href=
"#464" id=
"line464"> 464</a> </span> : * @param MongoCursor $cursor
1210 <span class=
"lineNum" id=
"container465"><a name=
"465"></a><a href=
"#465" id=
"line465"> 465</a> </span> : *
1211 <span class=
"lineNum" id=
"container466"><a name=
"466"></a><a href=
"#466" id=
"line466"> 466</a> </span> : * @return void
1212 <span class=
"lineNum" id=
"container467"><a name=
"467"></a><a href=
"#467" id=
"line467"> 467</a> </span> : */
1213 <span class=
"lineNum" id=
"container468"><a name=
"468"></a><a href=
"#468" id=
"line468"> 468</a> </span> : function QuerySave($class, $query_document, $cursor)
1214 <span class=
"lineNum" id=
"container469"><a name=
"469"></a><a href=
"#469" id=
"line469"> 469</a> </span> : {
1215 <span class=
"lineNum" id=
"container470"><a name=
"470"></a><a href=
"#470" id=
"line470"> 470</a> </span><span class=
"lineCov"> 4 : if (!$this-
>canUseCache($class)) {
</span>
1216 <span class=
"lineNum" id=
"container471"><a name=
"471"></a><a href=
"#471" id=
"line471"> 471</a> </span><span class=
"lineNoCov"> 0 : return;
</span>
1217 <span class=
"lineNum" id=
"container472"><a name=
"472"></a><a href=
"#472" id=
"line472"> 472</a> </span><span class=
"lineDeadCode"> : }
</span>
1218 <span class=
"lineNum" id=
"container473"><a name=
"473"></a><a href=
"#473" id=
"line473"> 473</a> </span> :
1219 <span class=
"lineNum" id=
"container474"><a name=
"474"></a><a href=
"#474" id=
"line474"> 474</a> </span><span class=
"lineCov"> 4 : $query_id = $this-
>getQueryID($query_document);
</span>
1220 <span class=
"lineNum" id=
"container475"><a name=
"475"></a><a href=
"#475" id=
"line475"> 475</a> </span><span class=
"lineCov"> 4 : $ids = array();
</span>
1221 <span class=
"lineNum" id=
"container476"><a name=
"476"></a><a href=
"#476" id=
"line476"> 476</a> </span><span class=
"lineCov"> 4 : $ttl = array();
</span>
1222 <span class=
"lineNum" id=
"container477"><a name=
"477"></a><a href=
"#477" id=
"line477"> 477</a> </span><span class=
"lineCov"> 4 : $docs = array();
</span>
1223 <span class=
"lineNum" id=
"container478"><a name=
"478"></a><a href=
"#478" id=
"line478"> 478</a> </span> :
1224 <span class=
"lineNum" id=
"container479"><a name=
"479"></a><a href=
"#479" id=
"line479"> 479</a> </span><span class=
"lineCov"> 4 : foreach ($cursor as $id=
>$document) {
</span>
1225 <span class=
"lineNum" id=
"container480"><a name=
"480"></a><a href=
"#480" id=
"line480"> 480</a> </span><span class=
"lineCov"> 4 : $ids[$id] = $document['_id'];
</span>
1226 <span class=
"lineNum" id=
"container481"><a name=
"481"></a><a href=
"#481" id=
"line481"> 481</a> </span><span class=
"lineCov"> 4 : $docs[$id] = $document;
</span>
1227 <span class=
"lineNum" id=
"container482"><a name=
"482"></a><a href=
"#482" id=
"line482"> 482</a> </span><span class=
"lineCov"> 4 : $ttl[$id] =
3600;
</span>
1228 <span class=
"lineNum" id=
"container483"><a name=
"483"></a><a href=
"#483" id=
"line483"> 483</a> </span><span class=
"lineCov"> 4 : }
</span>
1229 <span class=
"lineNum" id=
"container484"><a name=
"484"></a><a href=
"#484" id=
"line484"> 484</a> </span> :
1230 <span class=
"lineNum" id=
"container485"><a name=
"485"></a><a href=
"#485" id=
"line485"> 485</a> </span><span class=
"lineCov"> 4 : $this-
>driver-
>setMulti($docs, $ttl);
</span>
1231 <span class=
"lineNum" id=
"container486"><a name=
"486"></a><a href=
"#486" id=
"line486"> 486</a> </span><span class=
"lineCov"> 4 : $this-
>driver-
>set($query_id, $ids,
3600);
</span>
1232 <span class=
"lineNum" id=
"container487"><a name=
"487"></a><a href=
"#487" id=
"line487"> 487</a> </span><span class=
"lineCov"> 4 : }
</span>
1233 <span class=
"lineNum" id=
"container488"><a name=
"488"></a><a href=
"#488" id=
"line488"> 488</a> </span> : // }}}
1234 <span class=
"lineNum" id=
"container489"><a name=
"489"></a><a href=
"#489" id=
"line489"> 489</a> </span> :
1235 <span class=
"lineNum" id=
"container490"><a name=
"490"></a><a href=
"#490" id=
"line490"> 490</a> </span> : // UpdateDocumentHook($class, $document, $obj) {{{
1236 <span class=
"lineNum" id=
"container491"><a name=
"491"></a><a href=
"#491" id=
"line491"> 491</a> </span> : /**
1237 <span class=
"lineNum" id=
"container492"><a name=
"492"></a><a href=
"#492" id=
"line492"> 492</a> </span> : * Update Hook
1238 <span class=
"lineNum" id=
"container493"><a name=
"493"></a><a href=
"#493" id=
"line493"> 493</a> </span> : *
1239 <span class=
"lineNum" id=
"container494"><a name=
"494"></a><a href=
"#494" id=
"line494"> 494</a> </span> : * Save or Replace an object (document)
1240 <span class=
"lineNum" id=
"container495"><a name=
"495"></a><a href=
"#495" id=
"line495"> 495</a> </span> : * into the cache.
1241 <span class=
"lineNum" id=
"container496"><a name=
"496"></a><a href=
"#496" id=
"line496"> 496</a> </span> : *
1242 <span class=
"lineNum" id=
"container497"><a name=
"497"></a><a href=
"#497" id=
"line497"> 497</a> </span> : * @param string $class Class name
1243 <span class=
"lineNum" id=
"container498"><a name=
"498"></a><a href=
"#498" id=
"line498"> 498</a> </span> : * @param object $document Document sent to mongodb
1244 <span class=
"lineNum" id=
"container499"><a name=
"499"></a><a href=
"#499" id=
"line499"> 499</a> </span> : * @param object $obj ActiveMongo Object
1245 <span class=
"lineNum" id=
"container500"><a name=
"500"></a><a href=
"#500" id=
"line500"> 500</a> </span> : *
1246 <span class=
"lineNum" id=
"container501"><a name=
"501"></a><a href=
"#501" id=
"line501"> 501</a> </span> : * @return NULL
1247 <span class=
"lineNum" id=
"container502"><a name=
"502"></a><a href=
"#502" id=
"line502"> 502</a> </span> : */
1248 <span class=
"lineNum" id=
"container503"><a name=
"503"></a><a href=
"#503" id=
"line503"> 503</a> </span> : function UpdateDocumentHook($class, $document, $obj)
1249 <span class=
"lineNum" id=
"container504"><a name=
"504"></a><a href=
"#504" id=
"line504"> 504</a> </span> : {
1250 <span class=
"lineNum" id=
"container505"><a name=
"505"></a><a href=
"#505" id=
"line505"> 505</a> </span><span class=
"lineCov"> 4 : if (!$this-
>canUseCache($class)) {
</span>
1251 <span class=
"lineNum" id=
"container506"><a name=
"506"></a><a href=
"#506" id=
"line506"> 506</a> </span><span class=
"lineNoCov"> 0 : return;
</span>
1252 <span class=
"lineNum" id=
"container507"><a name=
"507"></a><a href=
"#507" id=
"line507"> 507</a> </span><span class=
"lineDeadCode"> : }
</span>
1253 <span class=
"lineNum" id=
"container508"><a name=
"508"></a><a href=
"#508" id=
"line508"> 508</a> </span> :
1254 <span class=
"lineNum" id=
"container509"><a name=
"509"></a><a href=
"#509" id=
"line509"> 509</a> </span><span class=
"lineCov"> 4 : if (!isset($obj['_id'])) {
</span>
1255 <span class=
"lineNum" id=
"container510"><a name=
"510"></a><a href=
"#510" id=
"line510"> 510</a> </span><span class=
"lineCov"> 3 : if (!isset($document['_id'])) {
</span>
1256 <span class=
"lineNum" id=
"container511"><a name=
"511"></a><a href=
"#511" id=
"line511"> 511</a> </span><span class=
"lineNoCov"> 0 : return; /* Weird condition */
</span>
1257 <span class=
"lineNum" id=
"container512"><a name=
"512"></a><a href=
"#512" id=
"line512"> 512</a> </span><span class=
"lineDeadCode"> : }
</span>
1258 <span class=
"lineNum" id=
"container513"><a name=
"513"></a><a href=
"#513" id=
"line513"> 513</a> </span><span class=
"lineCov"> 3 : $obj['_id'] = $document['_id'];
</span>
1259 <span class=
"lineNum" id=
"container514"><a name=
"514"></a><a href=
"#514" id=
"line514"> 514</a> </span><span class=
"lineCov"> 3 : }
</span>
1260 <span class=
"lineNum" id=
"container515"><a name=
"515"></a><a href=
"#515" id=
"line515"> 515</a> </span> :
1261 <span class=
"lineNum" id=
"container516"><a name=
"516"></a><a href=
"#516" id=
"line516"> 516</a> </span><span class=
"lineCov"> 4 : $this-
>driver-
>set((string)$obj['_id'], $obj,
3600);
</span>
1262 <span class=
"lineNum" id=
"container517"><a name=
"517"></a><a href=
"#517" id=
"line517"> 517</a> </span><span class=
"lineCov"> 4 : }
</span>
1263 <span class=
"lineNum" id=
"container518"><a name=
"518"></a><a href=
"#518" id=
"line518"> 518</a> </span> : // }}}
1264 <span class=
"lineNum" id=
"container519"><a name=
"519"></a><a href=
"#519" id=
"line519"> 519</a> </span> :
1265 <span class=
"lineNum" id=
"container520"><a name=
"520"></a><a href=
"#520" id=
"line520"> 520</a> </span> : }
1266 <span class=
"lineNum" id=
"container521"><a name=
"521"></a><a href=
"#521" id=
"line521"> 521</a> </span> :
1267 <span class=
"lineNum" id=
"container522"><a name=
"522"></a><a href=
"#522" id=
"line522"> 522</a> </span> : /*
1268 <span class=
"lineNum" id=
"container523"><a name=
"523"></a><a href=
"#523" id=
"line523"> 523</a> </span> : * Local variables:
1269 <span class=
"lineNum" id=
"container524"><a name=
"524"></a><a href=
"#524" id=
"line524"> 524</a> </span> : * tab-width:
4
1270 <span class=
"lineNum" id=
"container525"><a name=
"525"></a><a href=
"#525" id=
"line525"> 525</a> </span> : * c-basic-offset:
4
1271 <span class=
"lineNum" id=
"container526"><a name=
"526"></a><a href=
"#526" id=
"line526"> 526</a> </span> : * End:
1272 <span class=
"lineNum" id=
"container527"><a name=
"527"></a><a href=
"#527" id=
"line527"> 527</a> </span> : * vim600: sw=
4 ts=
4 fdm=marker
1273 <span class=
"lineNum" id=
"container528"><a name=
"528"></a><a href=
"#528" id=
"line528"> 528</a> </span> : * vim
<600: sw=
4 ts=
4
1274 <span class=
"lineNum" id=
"container529"><a name=
"529"></a><a href=
"#529" id=
"line529"> 529</a> </span> : */
1281 <table width=
"100%" border=
"0" cellspacing=
"0" cellpadding=
"0">
1282 <tr><td class=
"ruler"><img src=
"glass.png" width=
"3" height=
"3" alt=
""></td></tr>
1283 <tr><td class=
"versionInfo">Generated by
<a href=
"http://www.phpunit.de/" target=
"_top">PHPUnit
3.4.12</a> and
<a href=
"http://www.xdebug.org/" target=
"_top">Xdebug
2.0.5</a> using
<a href=
"http://www.php.net/" target=
"_top">PHP
5.3.2</a> at Wed May
26 12:
04:
20 PYT
2010.
</td></tr>
1288 <script type=
"text/javascript">
1290 $E
= YAHOO
.util
.Event
;
1291 YAHOO
.namespace("phpunit.container");
1292 YAHOO
.phpunit
.container
.panelsData
= {
1294 "header": "5 tests cover line 63",
1295 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1299 "header": "5 tests cover line 64",
1300 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1304 "header": "5 tests cover line 65",
1305 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1309 "header": "5 tests cover line 66",
1310 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1314 "header": "5 tests cover line 70",
1315 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1319 "header": "5 tests cover line 71",
1320 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1324 "header": "1 test covers line 80",
1325 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheMultiple</li></ul>",
1329 "header": "1 test covers line 81",
1330 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheMultiple</li></ul>",
1334 "header": "1 test covers line 83",
1335 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheMultiple</li></ul>",
1339 "header": "5 tests cover line 88",
1340 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1344 "header": "5 tests cover line 89",
1345 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1349 "header": "3 tests cover line 93",
1350 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1354 "header": "5 tests cover line 98",
1355 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1359 "header": "5 tests cover line 99",
1360 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1364 "header": "5 tests cover line 100",
1365 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1369 "header": "5 tests cover line 104",
1370 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1374 "header": "5 tests cover line 105",
1375 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1379 "header": "3 tests cover line 110",
1380 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1384 "header": "5 tests cover line 140",
1385 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1389 "header": "5 tests cover line 152",
1390 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1394 "header": "5 tests cover line 172",
1395 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1399 "header": "5 tests cover line 173",
1400 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1404 "header": "1 test covers line 174",
1405 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1409 "header": "1 test covers line 175",
1410 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1414 "header": "5 tests cover line 176",
1415 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1419 "header": "5 tests cover line 177",
1420 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1424 "header": "4 tests cover line 196",
1425 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1429 "header": "4 tests cover line 197",
1430 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1434 "header": "1 test covers line 198",
1435 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1439 "header": "1 test covers line 199",
1440 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1444 "header": "4 tests cover line 200",
1445 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1449 "header": "4 tests cover line 201",
1450 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1454 "header": "4 tests cover line 202",
1455 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1459 "header": "1 test covers line 249",
1460 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1464 "header": "1 test covers line 250",
1465 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1469 "header": "1 test covers line 251",
1470 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1474 "header": "1 test covers line 252",
1475 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1479 "header": "1 test covers line 253",
1480 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1484 "header": "2 tests cover line 265",
1485 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1489 "header": "1 test covers line 266",
1490 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1494 "header": "1 test covers line 268",
1495 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1499 "header": "1 test covers line 269",
1500 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1504 "header": "1 test covers line 283",
1505 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1509 "header": "1 test covers line 284",
1510 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1514 "header": "1 test covers line 285",
1515 "body": "<ul><li class=\"testPassed\">CacheTest::testInit</li></ul>",
1519 "header": "5 tests cover line 327",
1520 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1524 "header": "5 tests cover line 330",
1525 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1529 "header": "5 tests cover line 331",
1530 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1534 "header": "5 tests cover line 351",
1535 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1539 "header": "5 tests cover line 353",
1540 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1544 "header": "1 test covers line 365",
1545 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1549 "header": "1 test covers line 366",
1550 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1554 "header": "1 test covers line 367",
1555 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1559 "header": "1 test covers line 368",
1560 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1564 "header": "1 test covers line 382",
1565 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1569 "header": "1 test covers line 383",
1570 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1574 "header": "1 test covers line 384",
1575 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1579 "header": "1 test covers line 387",
1580 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1584 "header": "1 test covers line 388",
1585 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1589 "header": "1 test covers line 390",
1590 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1594 "header": "5 tests cover line 410",
1595 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1599 "header": "2 tests cover line 411",
1600 "body": "<ul><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1604 "header": "5 tests cover line 414",
1605 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1609 "header": "5 tests cover line 416",
1610 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1614 "header": "2 tests cover line 417",
1615 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li></ul>",
1619 "header": "5 tests cover line 420",
1620 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1624 "header": "5 tests cover line 424",
1625 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1629 "header": "5 tests cover line 425",
1630 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1634 "header": "5 tests cover line 427",
1635 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1639 "header": "5 tests cover line 428",
1640 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1644 "header": "5 tests cover line 430",
1645 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1649 "header": "5 tests cover line 431",
1650 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1654 "header": "1 test covers line 432",
1655 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1659 "header": "1 test covers line 433",
1660 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1664 "header": "5 tests cover line 434",
1665 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1669 "header": "5 tests cover line 436",
1670 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1674 "header": "1 test covers line 437",
1675 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1679 "header": "1 test covers line 438",
1680 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1684 "header": "1 test covers line 439",
1685 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1689 "header": "1 test covers line 440",
1690 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1694 "header": "1 test covers line 441",
1695 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1699 "header": "1 test covers line 442",
1700 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1704 "header": "1 test covers line 443",
1705 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1709 "header": "1 test covers line 444",
1710 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1714 "header": "1 test covers line 445",
1715 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1719 "header": "1 test covers line 446",
1720 "body": "<ul><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1724 "header": "5 tests cover line 449",
1725 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1729 "header": "5 tests cover line 454",
1730 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1734 "header": "4 tests cover line 470",
1735 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1739 "header": "4 tests cover line 474",
1740 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1744 "header": "4 tests cover line 475",
1745 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1749 "header": "4 tests cover line 476",
1750 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1754 "header": "4 tests cover line 477",
1755 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1759 "header": "4 tests cover line 479",
1760 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1764 "header": "4 tests cover line 480",
1765 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1769 "header": "4 tests cover line 481",
1770 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1774 "header": "4 tests cover line 482",
1775 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1779 "header": "4 tests cover line 483",
1780 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1784 "header": "4 tests cover line 485",
1785 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1789 "header": "4 tests cover line 486",
1790 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1794 "header": "4 tests cover line 487",
1795 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li><li class=\"testPassed\">CacheTest::testFetchFromCache</li></ul>",
1799 "header": "4 tests cover line 505",
1800 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1804 "header": "4 tests cover line 509",
1805 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1809 "header": "3 tests cover line 510",
1810 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1814 "header": "3 tests cover line 513",
1815 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1819 "header": "3 tests cover line 514",
1820 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1824 "header": "4 tests cover line 516",
1825 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1829 "header": "4 tests cover line 517",
1830 "body": "<ul><li class=\"testPassed\">CacheTest::testCacheSimple</li><li class=\"testPassed\">CacheTest::testCacheMultiple</li><li class=\"testPassed\">CacheTest::testUpdateCache</li><li class=\"testPassed\">CacheTest::testUpdateQueryCache</li></ul>",
1836 YAHOO
.phpunit
.container
.prepare = function (e
) {
1837 var elemId
= $E
.getTarget(e
).id
;
1838 var line
= elemId
.substr(4);
1839 var panelId
= "panel" + line
;
1840 var containerId
= "container" + line
;
1842 var panelData
= YAHOO
.phpunit
.container
.panelsData
[panelId
];
1844 var panel
= new YAHOO
.widget
.Panel(panelId
, { visible
:false, draggable
:false, close
:true } );
1845 panel
.setHeader(panelData
["header"]);
1846 panel
.setBody(panelData
["body"]);
1847 panel
.setFooter(panelData
["footer"]);
1848 panel
.render(containerId
);
1850 $E
.addListener(elemId
, "click", panel
.show
, panel
, true);
1851 $E
.removeListener(elemId
, "mouseover");
1855 var ypc
= YAHOO
.phpunit
.container
;
1856 for (var panelId
in ypc
.panelsData
) {
1857 var elemId
= "line" + panelId
.substr(5);
1858 $E
.addListener(elemId
, "mouseover", ypc
.prepare
);
1862 $E
.addListener(window
, "load", init
);