/** * Recherche dans les dictionnaires les définitions correspondantes à l'URI. * * @return \Aouka\Project\Routing\Route */ protected function _findUriDefinitions() { foreach ($this->_aDictionaries as $cUriComponent => $aDictionaries) { $sUri = $this->_getUriComponent($cUriComponent); foreach ($aDictionaries as $aDictionary) { $oParser = new Parser($aDictionary); // On teste si l'URI correspond au pattern de l'une des définitions $aMatchedRoute = $oParser->getMatchRoute($sUri); // S'il n'y a pas de correspondance if ($aMatchedRoute === null) { // On passe à la définition suivante continue; } // S'il y a une correspondance, on stocke la définition $this->_setDefinition($aMatchedRoute, $cUriComponent); // Si la correspondance s'est faite sur le chemin complet de l'URI if ($cUriComponent === AbstractRouting::URI_COMPLETE_PATH) { // on ne cherche pas à aller plus loin break 2; } else { // on continue de regarder dans les autres types de dictionnaire, // s'il y a encore des correspondances de définition break; } } } return $this; }
protected static function _updateDefaultDefinitions($cUriComponent) { $aRouteIds = [$cUriComponent => self::$_aDefaultConf[self::_ROUTE_ID][$cUriComponent]]; $aDictionaries = self::$_aDefaultConf[self::_DICTIONARY]; foreach ($aRouteIds as $cUriComponent => $sId) { if ($sId) { foreach ($aDictionaries[$cUriComponent] as $aDictionary) { $oParser = new Parser($aDictionary); // On teste si l'id recherché existe parmi les définitions $aMatchedRoute = $oParser->getMatchId($sId); // S'il n'y a pas de correspondance if ($aMatchedRoute === null) { // On passe à la définition suivante continue; } // S'il existe une champ REWRITE, on stocke la définition if (isset($aMatchedRoute[self::REWRITE])) { self::_setDefaultDefinition($aMatchedRoute, $cUriComponent); // Si la correspondance s'est faite sur le chemin complet de l'URI if ($cUriComponent === self::URI_COMPLETE_PATH) { // on ne cherche pas à aller plus loin break 2; } else { // on continue de regarder dans les autres types de dictionnaire, // s'il y a encore des correspondances de définition break; } } } } } }
$oRoute = $oRouter->get($sUri); echo "\n\nURL à router :\n"; echo $sUri; echo "\n\n\nPARAMÈTRES GET AVANT EXTRACTION :\n"; print_r($_GET); echo "\n\n\nPARAMÈTRES GET APRÈS EXTRACTION :\n"; $oRoute->execute(Route::EXTRACT_VARS); print_r($_GET); echo "\n\n\nFICHIERS INCLUS :\n"; print_r($oRoute->getIncludeFiles()); echo "\n\n\nINCLUSION DES FICHIERS :\n"; $oRoute->execute(Route::INCLUDE_FILES); //$oRoute = new \Aouka\Project\Routing\Route(); //$oRoute->setRouter($oRouteLibrary); //$oRoute->setUri($oUrl); //$oRoute->execute(\Aouka\Project\Routing\Route::EXTRACT_VARS); //$oRoute->scan(); //$oRoute->execute(Aouka\Project\Routing\Route::EXTRACT_VARS); //exit; $oParser = new Parser($oRouteLibrary->getDictionaries()); $aResult = $oParser->routes(); $a = $oParser->custom('DOMAIN.CAL.ROUTE.MATCH'); //print_r($a); //print_r($oDic->get(null)); //print_r(RouteValidator::isValid($oRouteLibrary->getDictionaries())); //print_r($oParser); //print_r($oRouteLibrary->toArray()['BASEPATH']['ROUTE']); //print_r($oRouteLibrary->toArray()['PATH']['DOMAIN']['CAL']['ROUTE']); //print_r($aRight); //print_r(Aouka\Project\Routing\Validation\Route::isValid($oDictionary3)); //print_r(Aouka\Project\Routing\Validation\Route::isValid($oDictionary1));