ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Factory.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\Cache\Adaptor;
22 
24 
28 class Factory
29 {
30  public function getSpecific(string $adaptor, Config $config): Adaptor
31  {
32  $adaptor_implementation = match ($adaptor) {
33  Config::APCU => new APCu($config),
34  Config::PHPSTATIC => new PHPStatic($config),
35  Config::MEMCACHED => new Memcached($config),
36  default => new PHPStatic($config),
37  };
38 
39  return $adaptor_implementation->isAvailable() ? $adaptor_implementation : new PHPStatic($config);
40  }
41 
42  public function getWithConfig(Config $config): Adaptor
43  {
44  return $this->getSpecific($config->getAdaptorName(), $config);
45  }
46 }
getSpecific(string $adaptor, Config $config)
Definition: Factory.php:30
getWithConfig(Config $config)
Definition: Factory.php:42