[Klasa]Memory.class.php, Klasa do magazynowania zmiennych |
[Klasa]Memory.class.php, Klasa do magazynowania zmiennych |
26.07.2012, 21:13:29
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 9 Dołączył: 2.02.2011 Skąd: undefined Ostrzeżenie: (0%) |
Witam
Napisałem klasę grupującą używanie zmienne oraz umożliwiającą łatwy do nich dostęp. Pierwotnie miałem ją zrobić składową klasy do obsługi języków, ale stwierdziłem że osobna klasa będzie bardziej przydatna. W związku z powyższym, dzielę się moimi wypocinami;P Memory.class.php Opis: Klasa implementuje interfejsów:
Zakładam że znane są metody tych interfejsów, więc pominę je w opisie. Metody własne: Memory::__construct([$data = array() [, $filter = false [,$arrayAsSelf = true ]]]) - public Konstructor klasy $data - dane w postaci tablicy które mają zostać dodane na wstępie $filter - czy wpisy z niepoprawnymi kluczami mają zostać odfiltrowane $arrayAsSelf - czy podtablice mają być traktowane jako obiekty Memory Przykład:
Out(vardump): Kod object["Memory"][4] ( [*__data] => array[2] ( [test] => string[17] ("testowa wartość") [t] => array[1] ( [t2] => array[1] ( [ttt] => string[15] ("gleboka wartosc") ) ) ) [*__length] => integer (2) [*__arrayAsSelf] => boolean (true) [*__lastKey] => string[1] ("t") ord(116) ) Memory::getArray(void) - public Funkcja zwraca listę zmiennych w postaci tablicy Out(vardump): Kod array[2] ( [test] => string[17] ("testowa wartość") [t] => array[1] ( [t2] => array[1] ( [ttt] => string[15] ("gleboka wartosc") ) ) ) Memory::isEmpty(void) - public Sprawdza czy pamięć jest pusta Out(vardump): Kod boolean (false) Memory::clear(void) - public Czyszczenie pamięci
Out(vardump): Kod object["Memory"][4] ( [*__data] => array[0] ( ) [*__length] => integer (0) [*__arrayAsSelf] => boolean (true) [*__lastKey] => void[NULL] ) Memory::import($array[,$filter = false]) - public Importowanie danych z tablicy $array - tablica z danymi $filter - tak jak w przypadku konstruktora czy niepoprawne klucze mają zostać odfiltrowane Out(vardump): Kod object["Memory"][4] ( [*__data] => array[1] ( [tt] => string[2] ("gg") ord(103;103) ) [*__length] => integer (1) [*__arrayAsSelf] => boolean (true) [*__lastKey] => string[2] ("tt") ord(116;116) ) Memory::merge($array[,$filter = false]) - public Dołączanie tablicy bądź obiektu Memory do aktualnego obiektu $array - tablica z danymi bądź obiekt Memory $filter - tak jak w przypadku konstruktora czy niepoprawne klucze mają zostać odfiltrowane Out(vardump): Kod object["Memory"][4] ( [*__data] => array[3] ( [test] => string[17] ("testowa wartość") [t] => array[1] ( [t2] => array[1] ( [ttt] => string[15] ("gleboka wartosc") ) ) [ddd] => string[2] ("gg") ord(103;103) ) [*__length] => integer (3) [*__arrayAsSelf] => boolean (true) [*__lastKey] => string[3] ("ddd") ord(100;100;100) ) Memory::_recount(void) - protected Przeliczanie i szukanie ostatniego klucza w tablicy zmiennych Memory::_arrayChecker(&$array[,$filter = false]) - protected Sprawdzanie poprawności kluczy w tablicy &$array - referencja do sprawdzanej tablicy $filter - tak jak w przypadku konstruktora czy niepoprawne klucze mają zostać odfiltrowane Memory::varnamechecker($varname) - public static Sprawdzanie poprawności nazwy zmiennej $varname - nazwa zmiennej Dostęp do zmiennych jest zapewniony na 3 różne sposoby
To myślę wszystko w opisie z mojej strony. Proszę o ocenę oraz zgłoszenie ewentualnych poprawek. |
|
|
26.07.2012, 21:21:03
Post
#2
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Hmmm... ale po co to właściwie jest? Jakie jest praktyczne zastosowanie?
-------------------- Linkedin | ...
|
|
|
26.07.2012, 21:45:50
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 9 Dołączył: 2.02.2011 Skąd: undefined Ostrzeżenie: (0%) |
Dopisujesz singleton i masz globalne właściwości dla aplikacji dostępne w każdym miejscu aplikacji. Poza tym tak jak napisałem powyżej używam tego w klasie obsługującej języki jako pamięć wartości z bardzo wygodnym dostępem do nich za pomocą operatora klasowego.
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 13:39 |