MediaWiki  master
BlobStoreFactory.php
Go to the documentation of this file.
1 <?php
21 namespace MediaWiki\Storage;
22 
26 use WANObjectCache;
28 
37 
41  private $lbFactory;
42 
46  private $extStoreAccess;
47 
51  private $cache;
52 
56  private $options;
57 
61  public const CONSTRUCTOR_OPTIONS = [
66  ];
67 
68  public function __construct(
69  ILBFactory $lbFactory,
70  ExternalStoreAccess $extStoreAccess,
71  WANObjectCache $cache,
72  ServiceOptions $options
73  ) {
74  $options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS );
75 
76  $this->lbFactory = $lbFactory;
77  $this->extStoreAccess = $extStoreAccess;
78  $this->cache = $cache;
79  $this->options = $options;
80  }
81 
89  public function newBlobStore( $dbDomain = false ) {
90  return $this->newSqlBlobStore( $dbDomain );
91  }
92 
100  public function newSqlBlobStore( $dbDomain = false ) {
101  $lb = $this->lbFactory->getMainLB( $dbDomain );
102  $store = new SqlBlobStore(
103  $lb,
104  $this->extStoreAccess,
105  $this->cache,
106  $dbDomain
107  );
108 
109  $store->setCompressBlobs( $this->options->get( MainConfigNames::CompressRevisions ) );
110  $store->setCacheExpiry( $this->options->get( MainConfigNames::RevisionCacheExpiry ) );
111  $store->setUseExternalStore(
112  $this->options->get( MainConfigNames::DefaultExternalStore ) !== false );
113 
114  if ( $this->options->get( MainConfigNames::LegacyEncoding ) ) {
115  $store->setLegacyEncoding( $this->options->get( MainConfigNames::LegacyEncoding ) );
116  }
117 
118  return $store;
119  }
120 
121 }
This is the main interface for fetching or inserting objects with ExternalStore.
A class for passing options to services.
assertRequiredOptions(array $expectedKeys)
Assert that the list of options provided in this instance exactly match $expectedKeys,...
A class containing constants representing the names of configuration variables.
const RevisionCacheExpiry
Name constant for the RevisionCacheExpiry setting, for use with Config::get()
const LegacyEncoding
Name constant for the LegacyEncoding setting, for use with Config::get()
const DefaultExternalStore
Name constant for the DefaultExternalStore setting, for use with Config::get()
const CompressRevisions
Name constant for the CompressRevisions setting, for use with Config::get()
Service for instantiating BlobStores.
__construct(ILBFactory $lbFactory, ExternalStoreAccess $extStoreAccess, WANObjectCache $cache, ServiceOptions $options)
Service for storing and loading Content objects.
Multi-datacenter aware caching interface.
An interface for generating database load balancers.
Definition: ILBFactory.php:34
$cache
Definition: mcc.php:33