Ejemplo n.º 1
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);
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Affecte une ou plusieurs valeurs du tableau des propriétés de l'instance.
  *
  * @param array|string $mProperty Si vaut
  * <ul>
  *	<li>array : l'ensemble des propriétés de l'instance sera remplacé par $mProperty.</li>
  *	<li>string : seule la propriété pointée par $mProperty est affectée par la valeur $mValue.</li>
  * </ul>
  * Si la propriété pointée par $mProperty n'existe pas, elle est alors créée.<br/>
  * Si la propriété à affecter est en profondeur dans un tableau, les niveaux d'imbrication sont matérialisés dans $mProperty par des points.
  * @param mixed $mValue Valeur à affecter à la propriété pointée par $mProperties.
  * @return boolean TRUE si l'assignation a réussi ; FALSE dans le cas contraire.
  * @throws InvalidArgumentException
  */
 public function setProperty($mProperty, $mValue = null)
 {
     if (is_array($mProperty)) {
         $this->_aProperties = array_merge($this->_aProperties, $mProperty);
         $bSuccess = true;
     } else {
         if (is_string($mProperty)) {
             $aNestedPropertyKeys = explode('.', $mProperty);
             $bSuccess = ArrayHelper::setNestedValue($this->_aProperties, $aNestedPropertyKeys, $mValue, true);
         } else {
             throw new InvalidArgumentException("Argument #1 doit être un tableau associatif ou le nom d'une propriété de configuration.");
         }
     }
     return $bSuccess;
 }
Ejemplo n.º 3
0
 protected function _setNestedPropertyValue($sPropertyKeys, $mPropertyValue)
 {
     $aNestedPropertyKeys = explode('.', $sPropertyKeys);
     return ArrayHelper::setNestedValue($this->_aProperties, $aNestedPropertyKeys, $mPropertyValue);
 }