Nástroje používateľa

Nástoje správy stránok


dev:omega:php:router

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Both sides previous revision Previous revision
Next revision
Previous revision
dev:omega:php:router [2015/01/19 20:19]
Roman Sališ [coolName]
dev:omega:php:router [2015/01/19 20:41] (aktuálne)
Roman Sališ [Definovanie ciest]
Riadok 45: Riadok 45:
 function myRouteCallback($settings = array(), $argumentsVersion = NULL) function myRouteCallback($settings = array(), $argumentsVersion = NULL)
 { {
-  echo "​Callback,​ argumentsVersion=$argumentsVersion<br>\n";+  echo "<pre>Callback, argumentsVersion=$argumentsVersion\n";​
   var_export($settings);​   var_export($settings);​
 } }
Riadok 72: Riadok 72:
 </​code>​ </​code>​
  
 +Po zavolaní tejto URL adresy dostaneme v prehliadači výsledok:
 +
 +<​code>​
 +Callback, argumentsVersion=1
 +array (
 +  '​meno'​ => '​Jozef',​
 +  '​vek'​ => '​24',​
 +)
 +</​code>​
 ----- -----
 ==== coolName ==== ==== coolName ====
Riadok 79: Riadok 88:
 Ak bude ''​array'',​ potom môže obsahovať informáciu o kóde jazyka, pre ktorý je dané coolName určené. Ak bude ''​array'',​ potom môže obsahovať informáciu o kóde jazyka, pre ktorý je dané coolName určené.
  
-<code php space=2>+<​code ​php bMyRouter.php space=2>
 $routes["​my_route1"​] = array( $routes["​my_route1"​] = array(
   "​coolName"​ => "​cesta1",​   "​coolName"​ => "​cesta1",​
Riadok 90: Riadok 99:
 ----- -----
  
-<code php space=2>+<​code ​php bMyRouter.php space=2>
 $routes["​my_route1"​] = array( $routes["​my_route1"​] = array(
   "​coolName"​ => array(   "​coolName"​ => array(
Riadok 109: Riadok 118:
  
  
-<code php space=2>+<​code ​php bMyRouter.php space=2>
 $routes["​my_route1"​] = array( $routes["​my_route1"​] = array(
   "​coolName"​ => array(   "​coolName"​ => array(
Riadok 151: Riadok 160:
 Parameter ''​arguments''​ určuje, aké parametre sa zakódujú do výslednej URL adresy. Parameter ''​arguments''​ určuje, aké parametre sa zakódujú do výslednej URL adresy.
 Musí byť ''​array'',​ ktorý bude obsahovať ďalší ''​array''​. Musí byť ''​array'',​ ktorý bude obsahovať ďalší ''​array''​.
 +Prvý ''​array''​ musí obsahovať číselný kľúč, ktorý určuje verziu parametrov.
 +Verzia parametrov je nástroj, pomocou ktorého zaručujeme spätnú kompatibilita.
 +Ak dnes používame verziu parametrov **1**, ktorá obsahuje 2 parametre a o pol roka zavedieme verziu **2** s 3 parametrami,​ musíme zaručiť, aby odkazy vygenerované vo verzii **1** boli stále platné a funkčné.
  
  
-<code php space=2>+<​code ​php bMyRouter.php space=2>
 $routes["​my_route1"​] = array( $routes["​my_route1"​] = array(
-  "​arguments"​ => "cesta1",+  "​arguments"​ => array( ​  
 +    ​"1" ​=> array( 
 +      "​meno",​ 
 +      "​vek",​ 
 +    ), 
 +  ),
   # ...   # ...
 </​code>​ </​code>​
-Skript bude reagovať na URL adresu +<code php test.php space=2>​ 
-\\ ''​http://​studio2.local/​r/​cesta1/​1/Jozef/24''​+$router = $this->​app->​initCoreModule("​router"​);​ 
 +echo $router->​getRoute("​my_route1",​ array( 
 +  "​meno"​ => "​Jozef",​ 
 +  "​vek"​ => 24, 
 +)); 
 +</​code>​ 
 + 
 +Výsledok:​ 
 +<​code>​ 
 +http://​studio2.local/​r/​cesta1/​2/Jozef/24 
 +</​code>​
  
  
 ----- -----
 +Funkcia ''​getRoute''​ použije najvyššiu verziu parametrov.
  
-<code php space=2>+<​code ​php bMyRouter.php space=2>
 $routes["​my_route1"​] = array( $routes["​my_route1"​] = array(
-  "coolName" => array( +  "arguments" => array( ​  
-    "cesta1", +    "1" => array( 
-    "moja-cesta1", +      "meno", 
-    "my-path1",+      "vek"
 +    )
 +    "2" ​=> array( 
 +      "​meno",​ 
 +      "​vek",​ 
 +      "​vyska",​ 
 +    ),
   ),   ),
   # ...   # ...
 </​code>​ </​code>​
  
-Skript bude reagovať na URL adresy: +<code php test.php space=2> 
-\\ ''​http://​studio2.local/​r/​cesta1/​1/​Jozef/​24''​ +$router = $this->​app->​initCoreModule("​router"​);​ 
-\\ ''​http://​studio2.local/​r/​moja-cesta1/1/Jozef/24''​ +echo $router->​getRoute("​my_route1",​ array( 
-\\ ''​http:​//​studio2.local/​r/​my-path1/​1/​Jozef/​24''​+  "​meno"​ => "Jozef", 
 +  "​vek"​ => 24, 
 +  "​vyska"​ => 180, 
 +)); 
 +</code>
  
 +Výsledok:
 +<​code>​
 +http://​studio2.local/​r/​cesta1/​2/​Jozef/​24/​180
 +</​code>​
  
 ----- -----
  
 +Ak by sme nezadali parameter ''​vyska'',​ aj tak by sa vygenerovala verzia **2** (násl. príklad).
  
-<code php space=2> 
-$routes["​my_route1"​] = array( 
-  "​coolName"​ => array( 
-    "​cesta1"​ => "​sk",​ 
-    "​moja-cesta1"​ => "​sk",​ 
-    "​my-path1"​ => "​en",​ 
-  ), 
-  # ... 
-</​code>​ 
- 
-Skript bude reagovať na adresy ako v predchádzajúcom prípade. ​ 
-\\ Pri generovaní cesty pomocou ''​getRoute()''​ máme možnosť zvoliť, ktorý **coolName** sa použije na základe parametra ''​langId''​. ​ 
-Ak nebude parameter ''​langId''​ nastavený, SystemOmega sa bude snažiť použiť jazyk podľa aktuálne prihláseného užívateľa. 
- 
-Príklad, v ktorom budeme preferovať anglický jazyk: 
 <code php test.php space=2> <code php test.php space=2>
 $router = $this->​app->​initCoreModule("​router"​);​ $router = $this->​app->​initCoreModule("​router"​);​
Riadok 203: Riadok 231:
   "​meno"​ => "​Jozef",​   "​meno"​ => "​Jozef",​
   "​vek"​ => 24,   "​vek"​ => 24,
-),  
-array( 
-  "​langId"​ => "​en",​ 
 )); ));
 </​code>​ </​code>​
  
-<​code ​smarty test.tpl space=2+Výsledok:​ 
-{getRoute routeIdf="​my_route1"​ routeLangId="​en"​ meno="Jozef" vek=24}+<​code>​ 
 +http://​studio2.local/​r/​cesta1/​2/​Jozef/24/
 </​code>​ </​code>​
  
-Výstup v obidvoch prípadoch bude: + 
-<​code>​ +
-http://​studio2.local/​r/​my-path1/​1/​Jozef/​24 +
-</​code>​+
  
 ----- -----
dev/omega/php/router.1421695199.txt.gz · Posledná úprava: 2015/01/19 20:19 od Roman Sališ