Skip to content
memcache.install 2.22 KiB
Newer Older
<?php

/**
 * Implements hook_requirements().
 */
function memcache_requirements($phase) {
  $requirements = array();
  $t = get_t();
  $memcache = extension_loaded('memcache');
  $memcached = extension_loaded('memcached');
  if ($phase == 'install' || $phase == 'runtime') {
    if (!$memcache && !$memcached) {
      $requirements['memcache_extension']['severity'] = REQUIREMENT_ERROR;
      $requirements['memcache_extension']['title'] = $t('Extensions not available');
      $requirements['memcache_extension']['value'] = $t('Either the <a href="http://php.net/manual/en/book.memcache.php">memcache</a> or <a href="http://php.net/manual/en/book.memcached.php">memcached</a> extensions must be installed in order to use memcache integration.');
    }
  }
  if ($phase == 'runtime') {
    if ($memcache) {
      // @todo: consider adding minimum version requirement for extensions.
      $requirements['memcache_extension_version']['severity'] = REQUIREMENT_OK;
      $requirements['memcache_extension_version']['title'] = $t('Memcache version');
      $requirements['memcache_extension_version']['value'] = phpversion('memcache');
    }
    if ($memcached) {
      $requirements['memcached_extension_version']['severity'] = REQUIREMENT_OK;
      $requirements['memcached_extension_version']['title'] = $t('Memcached version');
      $requirements['memcached_extension_version']['value'] = phpversion('memcached');
    }
    // Confirm that dmemcache.inc has been included.
    $requirements['memcache_inc']['title'] = $t('Memcache integration');
    if (function_exists('dmemcache_set')) {
      $requirements['memcache_inc']['severity'] = REQUIREMENT_OK;
      $requirements['memcache_inc']['title'] = $t('Memcache integration');
      $requirements['memcache_inc']['value'] = $t('Memcache integration functions are loaded');
    }
    else {
      $requirements['memcache_inc']['severity'] = REQUIREMENT_WARNING;
      $requirements['memcache_inc']['title'] = $t('Memcache integration');
      $requirements['memcache_inc']['value'] = $t('Memcache integration is not currently loaded.');
      $requirements['memcache_inc']['description'] = $t('Check README.txt and ensure that memcache.inc is configured correctly in settings.php');
    }
  }
  return $requirements;
}