Global


Opis

Moduł umożliwia przechowywanie wartości w bazie danych instancji. Są wygodnym narzędziem przechowywania wartości potrzebnych podczas pracy instancji, a także po jej restarcie (np.: obowiązujące formaty dat, konfiguracja, itp). Wartości te są przechowywane w pamięci podręcznej, dostęp do nich jest więc równie szybki jak do innych zmiennych, zapis jest jednak nieporównanie wolniejszy (konieczność skomunikowania się z bazą danych).

Parametry globalne, poza kluczem i wartością posiadają jeszcze dwa pola, mające charakter wyłącznie informacyjny - wartość domyślną oraz krótki opis parametru.

Parametry mogą być odpowiednimi metodami dodawane, ustawiane(każda z właściwości parametru: klucz, wartość, wartość domyślna, opis), odczytywane, kasowane, usuwane z cache oraz ponownie do niego ładowane z bazy. Służą do tego odpowiednio metody: addParam, setParamName, setParamValue(w skrócie set), setParamDefaultValue, setParamDescription, get, removeParam, clearCache, loadParams wraz z podanymi w javadocu parametrami.

Na uwagę zasługuje fakt, że parametr musi zostać dodany, aby po usunięciu cache (a więc i restarcie instancji) był w dalszym ciągu dostępny dla programisty.

Zobacz także:


[Moduł Parametry] Edycja parametru
 

Konwencja i dobre praktyki

Parametry globalne powinny być używane do przechowywania wartości wspólnych dla całego systemu, jak formaty dat, wyrażenia regularne, itp.

Ponadto parametry globalne powinno się nazywać według konwencji nazywania obiektów.

Zobacz także:


[Nazewnictwo] Katalogi
 

Przykłady

Adres strony, dla np różnych serwisów ustawiany przez klienta, a kod pozostaje ten sam:

<a target="_blank" href="$global.get("unibox.company.www")">

Przechowywanie formatu daty wspólnego dla całego systemu:

$toString($@order.getCreationDate(), $global.get("configuration.dateFormat"))

Walidacja adresu ip w javascripcie:

// the method for IP address validation
jQuery.validator.addMethod(
"ipAddr",
function(value, element) {
return this.optional(element) || /$global.get("configuration.regexp.ip")/.test(value);
},
"$text.toUpperFirst($#("IpAddressInvalid"))"
);

Jak wspomniano w opisie - po przeladowaniu cache przestanie być dostępny (bo nie zapisany w bazie danych instancji) parametr "dog":

$global.addParam("flea", "?", "unknown", "meanigless short description")

$global.setParamValue("dog", "bark")

$global.addParam("cat")
$global.setParamValue("cat", "meow")
$global.setParamDefaultValue("cat", "meow")
$global.setParamDescription("cat", "That is what cats do")

$+([" - ", $global.get("cat"), " - said cat,<br/> - ", $global.get("dog"), " - responded dog."])

API

javadoc: http://jpalio.torn.com.pl/modules/palio/modules/Global.html