Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 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;
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
$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));