Elgg  Version 4.3
Memcached.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Cache\Config;
4 
6 
13 class Memcached extends Config {
14 
23  public static function fromElggConfig(string $namespace, \Elgg\Config $config): ?self {
24 
25  if (!$config->memcache || empty($config->memcache_servers)) {
26  return null;
27  }
28 
29  $servers = [];
30  foreach ($config->memcache_servers as $server) {
31  $server_config = [
32  'host' => '127.0.0.1',
33  'port' => 11211,
34  'saslUser' => false,
35  'saslPassword' => false,
36  ];
37 
38  if (array_key_exists('host', $server)) {
39  // assume correct config
40  $server_config = array_merge($server_config, $server);
41  } else {
42  // assume old config syntax
43  elgg_deprecated_notice("Memcache server({$server[0]}) configuration format has been changed. Please update the configuration in elgg-config/settings.php", '4.2');
44 
45  $server_config['host'] = $server[0];
46  $server_config['port'] = $server[1];
47  }
48 
49  $servers[] = $server_config;
50  }
51 
52  $opt_prefix = (string) $config->memcache_namespace_prefix;
53  $opt_prefix .= $namespace;
54 
55  return new self([
56  'servers' => $servers,
57  'preventCacheSlams' => true,
58  'useStaticItemCaching' => true,
59  'itemDetailedDate' => true,
60  'optPrefix' => $opt_prefix,
61  ]);
62  }
63 }
static fromElggConfig(string $namespace,\Elgg\Config $config)
Factory to return a config object to be used when starting a driver.
Definition: Memcached.php:23
$server
elgg_deprecated_notice(string $msg, string $dep_version)
Log a notice about deprecated use of a function, view, etc.
Definition: deprecation.php:52
Configuration for memcache(d) fastcache driver.
Definition: Memcached.php:13
$config
Advanced site settings, debugging section.
Definition: debugging.php:6
$servers
Memcache info.
Definition: memcache.php:5