Esempio n. 1
0
 protected function _getNestedPropertyValue($sPropertyKeys)
 {
     $aNestedPropertyKeys = explode('.', $sPropertyKeys);
     $mPropertyValue = ArrayHelper::getNestedValue($this->_aProperties, $aNestedPropertyKeys, $bKeyExists);
     if (!$bKeyExists) {
         throw ExceptionType::outOfBounds("La propriété de configuration \"{$sPropertyKeys}\" n'est pas définie.", Exception::FROM_CONFIG);
     }
     return $mPropertyValue;
 }
Esempio n. 2
0
 /**
  * Initialise la structure par défaut du tableau des stats.
  * 
  * @param string|array $sKeys Clés des éléments des statistiques à initialiser. Si aucune clé n'est renseignée,
  * l'intégralité du tableau des stats sera initialisé.
  */
 protected function _setDefaultStatStructure($sKeys = null)
 {
     if (!$sKeys || $sKeys === '_aStats') {
         $this->_aStats = self::$_aDefaultStatStructure;
     } else {
         $aSubProperties = explode('.', $sKeys);
         // on retire la première prorpiété du tableau qui, en fait, est "_aStats"
         array_shift($aSubProperties);
         $mDefaultValue = ArrayHelper::getNestedValue(self::$_aDefaultStatStructure, $aSubProperties, $bKeyExists);
         if ($bKeyExists) {
             ArrayHelper::setNestedValue($this->_aStats, $aSubProperties, $mDefaultValue);
         }
     }
 }
Esempio n. 3
0
 /**
  * Retourne la ou les propriétés pointées par $sPropertyKeys.
  *
  * @param string $sPropertyKeys Propriété(s) à récupérer. Si vaut NULL, toutes les propriétés sont retournées.<br/>
  * Pour récupérér une valeur située en profondeur, il suffit de séparer les niveaux d'imbrication par des points.
  * @return mixed Propriété(s) pointée(s) par $sPropertyKeys.
  * @throws InvalidArgumentException
  * @throws OutOfBoundsException
  */
 public function getProperty($sPropertyKeys = null, $mDefaultValue = null, &$bUnknownProperty = false)
 {
     if (!is_string($sPropertyKeys) && $sPropertyKeys !== null) {
         throw new InvalidArgumentException("Argument #1 doit être une chaîne de caractères désignant une propriété de configuration ou bien être NULL.");
     }
     if (is_string($sPropertyKeys)) {
         $aNestedPropertyKeys = explode('.', $sPropertyKeys);
         $mPropertyValue = ArrayHelper::getNestedValue($this->_aProperties, $aNestedPropertyKeys, $bKeyExists);
         if (!$bKeyExists) {
             $bUnknownProperty = true;
             $mPropertyValue = $mDefaultValue;
         }
     } else {
         $mPropertyValue = $this->_aProperties;
     }
     return $mPropertyValue;
 }