Пример #1
0
 /**
  * Ajoute un nouveau dictionnaire de routes.
  * 
  * @param array|\Aouka\ConfigSource\InterfaceConfigSource $mRouteDictionary Dictionnaire de routes.
  * @return Library
  */
 public function addDictionary($mRouteDictionary)
 {
     $bConfigSource = $mRouteDictionary instanceof InterfaceConfigSource;
     if (!is_array($mRouteDictionary) && !$bConfigSource) {
         throw new InvalidArgumentException("Argument #1 doit être une instance de \\Aouka\\ConfigSource\\InterfaceConfigSource ou être un tableau.");
     }
     if ($bConfigSource) {
         $aRouteDictionary = $mRouteDictionary->getValue();
     } else {
         $aRouteDictionary = $mRouteDictionary;
     }
     // On extrait le type de route du reste du dictionnaire
     $aValidDictionaryTypes = AbstractRouting::getValidDictionaryTypes();
     if (!isset($aRouteDictionary[AbstractRouting::DICTIONARY_TYPE]) || !in_array($aRouteDictionary[AbstractRouting::DICTIONARY_TYPE], $aValidDictionaryTypes)) {
         throw new InvalidArgumentException("Argument #1 n'a pas de propriété [" . AbstractRouting::DICTIONARY_TYPE . "] défini à la racine ayant pour valeur : \"" . implode('" ou "', $aValidDictionaryTypes) . "\".");
     }
     $this->_aDictionaries[$aRouteDictionary[AbstractRouting::DICTIONARY_TYPE]][] = $aRouteDictionary;
     return $this;
 }
Пример #2
0
 public function setLibrary(Library $oLibrary)
 {
     parent::setLibrary($oLibrary);
     // Si les conditions sont réunies pour matcher URI et définitions
     if ($this->_hasConditionToFind()) {
         // on recherche dans les dictionnaires les définitions correspondant à l'URI
         $this->_updateDefinitions();
     }
     return $this;
 }
Пример #3
0
 protected static function _isValidDictionaryType(array $aDictionary)
 {
     $bValid = true;
     if (!isset($aDictionary[AbstractRouting::DICTIONARY_TYPE])) {
         $bValid = self::_recordInvalid($aDictionary, "La propriété " . AbstractRouting::DICTIONARY_TYPE . " doit être définie à la racine du dictionnaire.");
     } else {
         if (!in_array($aDictionary[AbstractRouting::DICTIONARY_TYPE], AbstractRouting::getValidDictionaryTypes())) {
             $bValid = self::_recordInvalid($aDictionary, "La propriété " . AbstractRouting::DICTIONARY_TYPE . " doit avoir l'une des valeurs suivantes : \"" . implode('", "', AbstractRouting::getValidDictionaryTypes()) . "\".");
         }
     }
     return $bValid;
 }