/** * {@inheritdoc} */ public function get($optionName) { if (array_key_exists($optionName, $this->_ephemeralOptions)) { return $this->_ephemeralOptions[$optionName]; } try { return $this->_persistence->fetch($optionName); } catch (InvalidArgumentException $e) { if ($this->_optionReference->optionExists($optionName) && !$this->_optionReference->isMeantToBePersisted($optionName)) { return null; } throw $e; } }
private function _addAnyMissingOptions(array $optionsInThisStorageManager) { if ($this->_flagCheckedForMissingOptions) { return; } $optionNamesFromProvider = $this->_optionsReference->getAllOptionNames(); $toPersist = array(); $missingOptions = array_diff($optionNamesFromProvider, array_keys($optionsInThisStorageManager)); /* * @var string */ foreach ($missingOptions as $optionName) { if ($this->_optionsReference->isMeantToBePersisted($optionName)) { $toPersist[$optionName] = $this->_optionsReference->getDefaultValue($optionName); } } if (!empty($toPersist)) { $this->_backend->createEach($toPersist); $this->_forceReloadOfOptionsCache(); } $this->_flagCheckedForMissingOptions = true; }