[TASK] Change APC cache preset condition
[Packages/TYPO3.CMS.git] / typo3 / sysext / install / Classes / Configuration / ExtbaseObjectCache / ApcPreset.php
1 <?php
2 namespace TYPO3\CMS\Install\Configuration\ExtbaseObjectCache;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Install\Configuration;
18
19 /**
20 * APC preset
21 */
22 class ApcPreset extends Configuration\AbstractPreset
23 {
24 /**
25 * @var string Name of preset
26 */
27 protected $name = 'Apc';
28
29 /**
30 * @var int Priority of preset
31 */
32 protected $priority = 80;
33
34 /**
35 * @var array Configuration values handled by this preset
36 */
37 protected $configurationValues = array(
38 'SYS/caching/cacheConfigurations/extbase_object' => array(
39 'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,
40 'backend' => \TYPO3\CMS\Core\Cache\Backend\ApcBackend::class,
41 'options' => array(
42 'defaultLifetime' => 0,
43 ),
44 'groups' => array('system')
45 )
46 );
47
48 /**
49 * APC preset is available if extension is loaded and at least ~5MB are free.
50 *
51 * @return bool TRUE
52 */
53 public function isAvailable()
54 {
55 $result = false;
56 if (extension_loaded('apc')) {
57 $memoryInfo = @apc_sma_info();
58 $availableMemory = $memoryInfo['avail_mem'];
59
60 // If more than 5MB free
61 if ($availableMemory > (5 * 1024 * 1024)) {
62 $result = true;
63 }
64 }
65 return $result;
66 }
67 }