class Registry {
private function __construct() { }
public static function getInstance
() { if (!self::$instance)
self::$instance = new self();
return self::$instance;
}
/**
* Funkcja kontruuje adres na podstawie
* tablicy $address, czyli na podsatwie
* kontrolera, akcji i parametrow
**/
public static function getUrl
() {
$controller = substr($address["controller"], 0
, -10
); $paramList = implode(CS
, $address["params"]); $temp = array($controller, $address["action"], $paramList); foreach($temp as $key => $value)
if(!$value)
}
public static function goToUrl
($url) { }
/**
* Funkcja konwertuje adres url do tablic
* przekazujac podstawowe parametry:
* kontroler, akcje i parametry
* Adres moze miec postac: /KontrolerGlowny/Akcja/Tu/Jakies/Parametry
* Albo: /KontrolerBoczny/AkcjaBoczna,tu,boczne,parametry/KontrolerGlowny/Akcja/Tu/Jakies/Parametry
**/
public function convertAddress() {
//Walidacja POST'a
foreach($_POST as $key => $value) {
$_POST[$key] = Validator::validate($_POST[$key]);
$
{$key . "Error"} = array(); }
$url = Validator::validate($_GET["url"]);
else
self::goToUrl(HP . "home");
"side_controller" => "",
"side_action" => "",
);
//Pobranie kontrolera
//Sprawdz czy taki kontroler istnieje, jesli nie to idz do domyslnego -> HomeController
//Sprawdza tez czy przypadkiem zapytanie nie idzie do kontrolera statycznego (nie interaktywnego)
if (!class_exists
($address["controller"]) || in_array("StaticController", class_implements
($address["controller"]))) self::goToUrl(HP . "home");
//Sprawdzanie czy przyadkiem polecenie nie idze do SideControllera
if (in_array("SideController", class_implements
($address["controller"]))) { //Jesli tak, to podano kontroler poboczny
//Pobierz kontroler poboczny
$address["side_controller"] = $address["controller"];
//Sparsuj akcje i parametry dla kontrolera pobocznego
$sideTemp = explode(SS
, $sideAddress);
//Sprawdz czy istenieje taka akcja
//if (!method_exists($address["side_controller"], $address["side_action"]))
// $address["side_action"] = "";
$address["side_params"] = $sideTemp;
//Pobierz kontroler glowny
}
//Sprawdz czy kontroler glowny jest na prawde MainController, jesli nie zaladuj domyslny
if (!class_exists
($address["controller"]) || !in_array("MainController", class_implements
($address["controller"]))) self::goToUrl(HP . "home");