예제 #1
0
 /**
  * {@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;
     }
 }
예제 #2
0
 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;
 }