Nástroje používateľa

Nástoje správy stránok


dev:omega:php:router

Toto je staršia verzia dokumentu!


Router

Router slúži na generovanie URI adries na základe dopredu nadefinovaných parametrov. Spätné zavolanie tejto URI vyvolá našu funkciu. Parametre môžu byť verziované.

Definovanie ciest

Na definovanie ciest sa treba zaregistrovať na počúvanie broadcastu router/defineRoutes.

setListeners.php
$this->app->cc_setListener("router/defineRoutes", "bMyRouter/bDefineRoutes");
bMyRouter.php
function bDefineRoutes(iBroadcastEvent $e)
{
	# Existujúce cesty (routy) sú zadefinované v $e->getRefData();
	$routes = &$e->getRefData();
 
 
	# Môja nová routa
	$routes["my_route1"] = array(
 
		# CoolName
		"coolName" => "cesta1",
 
		# callback - funkcia, ktorá sa zavolá, keď zavoláme vygenerovanú cestu
		"callback" => array(&$this, "myRouteCallback"),
 
		# arguments - parametre
		"arguments" => array(
 
			# "1" - verzia parametrov
			"1" => array(
				"meno",
				"vek",
			),
		),
	);
}
 
 
function myRouteCallback($settings = array(), $argumentsVersion = NULL)
{
	echo "Callback, argumentsVersion=$argumentsVersion<br>\n";
	var_export($settings);
}

Použitie v reálnom kóde:

test.php
$router = $this->app->initCoreModule("router");
echo $router->getRoute("my_route1", array(
	"meno" => "Jozef",
	"vek" => 24,
));

Použitie v Smarty šablóne:

test.tpl
{getRoute routeIdf="my_route1" meno="Jozef" vek=24}

Výstup v obidvoch prípadoch bude:

http://studio2.local/r/cesta1/1/Jozef/24

coolName

Parameter coolName určuje, čo bude zobrazené vo výslednej URI adrese. Môže byť string alebo array. Ak bude array, potom môže obsahovať informáciu o kóde jazyka, pre ktorý je dané coolName určené.

$routes["my_route1"] = array(
	"coolName" => "cesta1",
	# ...
$routes["my_route1"] = array(
	"coolName" => array(
		"cesta1",
		"moja-cesta1",
		"my-path1",
	# ...
$routes["my_route1"] = array(
	"coolName" => array(
		"cesta1" => "sk",
		"moja-cesta1" => "sk",
		"my-path1" => "en",
	# ...

getRoute

/**
 *
 * @param	string	$routeIdf
 *    Identifikátor routy
 *
 * @param	array	$arguments
 *    Parametre do routy
 *
 * @param	array	$settings
 * @param	string	$settings["coolName"]=NULL
 * @param	string	$settings["langId"]=NULL
 * @param	string	$settings["separator"]="&amp;"
 * @param	string	$settings["anchor"]=NULL
 * @param	string	$settings["disableCoolUri"]=FALSE
 *
 * @return	string
 */
function getRoute($routeIdf, $routeArguments = array(), $settings = array());
dev/omega/php/router.1421694099.txt.gz · Posledná úprava: 2015/01/19 20:01 od Roman Sališ