TYPO3  7.6
ApcPreset.php
Go to the documentation of this file.
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 
23 {
27  protected $name = 'Apc';
28 
32  protected $priority = 80;
33 
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 
54  public function isAvailable()
55  {
56  $result = false;
57  if (extension_loaded('apc')) {
58  $memoryInfo = @apc_sma_info();
59  $totalMemory = $memoryInfo['num_seg'] * $memoryInfo['seg_size'];
60  $availableMemory = $memoryInfo['avail_mem'];
61 
62  // If more than 99MB in total and more than 5MB free
63  if ($totalMemory > (99 * 1024 * 1024)
64  && $availableMemory > (5 * 1024 * 1024)) {
65  $result = true;
66  }
67  }
68  return $result;
69  }
70 }