[TASK] Re-work/simplify copyright header in PHP files - Part 1
[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 integer 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',
40 'backend' => 'TYPO3\CMS\Core\Cache\Backend\ApcBackend',
41 'options' => array(
42 'defaultLifetime' => 0,
43 ),
44 'groups' => array('system')
45 )
46 );
47
48 /**
49 * APC preset is available if extension is loaded, if APC has ~100MB
50 * memory and if ~5MB are free.
51 *
52 * @return boolean TRUE
53 */
54 public function isAvailable() {
55 $result = FALSE;
56 if (extension_loaded('apc')) {
57 $memoryInfo = @apc_sma_info();
58 $totalMemory = $memoryInfo['num_seg'] * $memoryInfo['seg_size'];
59 $availableMemory = $memoryInfo['avail_mem'];
60
61 // If more than 99MB in total and more than 5MB free
62 if ($totalMemory > (99 * 1024 * 1024)
63 && $availableMemory > (5 * 1024 * 1024)) {
64 $result = TRUE;
65 }
66 }
67 return $result;
68 }
69 }