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:13]
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 123: Riadok 132:
 Ak nebude parameter ''​langId''​ nastavený, SystemOmega sa bude snažiť použiť jazyk podľa aktuálne prihláseného užívateľa. 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 142: Riadok 152:
 http://​studio2.local/​r/​my-path1/​1/​Jozef/​24 http://​studio2.local/​r/​my-path1/​1/​Jozef/​24
 </​code>​ </​code>​
 +
 +-----
 +
 +
 +==== arguments====
 +
 +Parameter ''​arguments''​ určuje, aké parametre sa zakódujú do výslednej URL adresy.
 +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 bMyRouter.php space=2>
 +$routes["​my_route1"​] = array(
 +  "​arguments"​ => array(  ​
 +    "​1"​ => array(
 +      "​meno",​
 +      "​vek",​
 +    ),
 +  ),
 +  # ...
 +</​code>​
 +<code php test.php space=2>
 +$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 bMyRouter.php space=2>
 +$routes["​my_route1"​] = array(
 +  "​arguments"​ => array(  ​
 +    "​1"​ => array(
 +      "​meno",​
 +      "​vek",​
 +    ),
 +    "​2"​ => array(
 +      "​meno",​
 +      "​vek",​
 +      "​vyska",​
 +    ),
 +  ),
 +  # ...
 +</​code>​
 +
 +<code php test.php space=2>
 +$router = $this->​app->​initCoreModule("​router"​);​
 +echo $router->​getRoute("​my_route1",​ array(
 +  "​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 test.php space=2>
 +$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>​
 +
 +
 +
  
 ----- -----
dev/omega/php/router.1421694802.txt.gz · Posledná úprava: 2015/01/19 20:13 od Roman Sališ