1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
/* |
4
|
|
|
* This file is part of CacheTool. |
5
|
|
|
* |
6
|
|
|
* (c) Samuel Gordalina <[email protected]> |
7
|
|
|
* |
8
|
|
|
* For the full copyright and license information, please view the LICENSE |
9
|
|
|
* file that was distributed with this source code. |
10
|
|
|
*/ |
11
|
|
|
|
12
|
|
|
namespace CacheTool\Command; |
13
|
|
|
|
14
|
|
|
use CacheTool\Util\Formatter; |
15
|
|
|
use Symfony\Component\Console\Helper\Table; |
16
|
|
|
use Symfony\Component\Console\Input\InputInterface; |
17
|
|
|
use Symfony\Component\Console\Output\OutputInterface; |
18
|
|
|
|
19
|
|
|
class ApcuCacheInfoKeysCommand extends ApcuCacheInfoCommand |
20
|
|
|
{ |
21
|
|
|
/** |
22
|
|
|
* {@inheritdoc} |
23
|
|
|
*/ |
24
|
|
|
protected function configure() |
25
|
|
|
{ |
26
|
|
|
$this |
27
|
|
|
->setName('apcu:cache:info:keys') |
28
|
|
|
->setDescription('Shows APCu keys cache information') |
29
|
|
|
->setHelp(''); |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
/** |
33
|
|
|
* {@inheritdoc} |
34
|
|
|
*/ |
35
|
|
|
protected function execute(InputInterface $input, OutputInterface $output) |
36
|
|
|
{ |
37
|
|
|
$this->ensureExtensionLoaded('apcu'); |
38
|
|
|
|
39
|
|
|
$info = $this->getCacheTool()->apcu_cache_info(false); |
40
|
|
|
$this->normalize($info); |
41
|
|
|
|
42
|
|
|
if (!$info) { |
|
|
|
|
43
|
|
|
throw new \RuntimeException("Could not fetch info from APCu"); |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
$header = array( |
47
|
|
|
'Hits', |
48
|
|
|
'Accessed', |
49
|
|
|
'Deleted', |
50
|
|
|
'Memory size', |
51
|
|
|
'Key', |
52
|
|
|
); |
53
|
|
|
|
54
|
|
|
$table = new Table($output); |
55
|
|
|
$table |
56
|
|
|
->setHeaders($header) |
57
|
|
|
->setRows($this->processFilelist($info['cache_list'])) |
58
|
|
|
; |
59
|
|
|
|
60
|
|
|
$table->render($output); |
|
|
|
|
61
|
|
|
} |
62
|
|
|
|
63
|
|
|
protected function processFileList(array $cacheList) |
64
|
|
|
{ |
65
|
|
|
$list = array(); |
66
|
|
|
|
67
|
|
|
foreach ($cacheList as $item) { |
68
|
|
|
$list[] = array( |
69
|
|
|
number_format($item['num_hits']), |
70
|
|
|
$item['access_time'] > 0 ? 'Yes' : 'No', |
71
|
|
|
$item['deletion_time'] > 0 ? 'Yes' : 'No', |
72
|
|
|
Formatter::bytes($item['mem_size']), |
73
|
|
|
$item['info'], |
74
|
|
|
); |
75
|
|
|
} |
76
|
|
|
|
77
|
|
|
return $list; |
78
|
|
|
} |
79
|
|
|
} |
80
|
|
|
|
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.