![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałem zrobić coś w stylu cache ale na tablicach. Mianowicie jeżeli użytkownik zaloguje się poprawnie to do różnych tablic robię zrzut (prawie) całej bazy. Robię to po to żeby nie łączyć się z bazą za każdym razem kiedy użytkownik przejdzie na inna podstronę. I mam taki mały problem bo nie wiem jak zrobić żeby ta tablica była widoczna wszędzie. Mam Klasę Login.class.php i tam jest metoda loadUser() i jak przejdzie wszystkie warunki to wywołuję klasę cache.class.php z metodą loadChache() która ładuje (prawie) wszystkie tabele do różnych tablic. Przechodząc dalej do metody loadUser() jak user poprawnie się zaloguje i poprawnie załaduje się baza to automatycznie zastaje prze kierowany do index.php. i tutaj mam problem bo nie wiem jak zabardzo zrobić tą tablicę (niby) globalną a nie chcę za bardzo tego umieszczać w tablicy $_SESSION. Jeszcze wspomnę że klasa loadCache() jest wywoływana tylko raz by załadować a chciałem użyć metody type getTable1, getTable2 itp. by pobierać tablice załadowane. Czy jest jakieś rozwiązanie, i czy w ogóle to jest dobry pomysł na ten cach? Moim zdaniem tak bo pozbywamy się zapytań do bazy, ale wolę usłyszeć wypowiedzi ekspertów bo jeszcze nie wiem czy potrzebnie się męczę. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W pojęciu obiektowym, wszystko co nie jest obiektem jest niebezpieczne. Inni użytkownicy raczej tego nie zobaczą, w przypadku jakiegoś błędu również nic się nie stanie. Jednak jakiś obiekt może chcieć sobie zmodyfikować nasz cache bez naszej zgody. Z tego względu własnie używa się singletonu i funkcji prywatnych przy konstruktorze. Dzięki temu mamy wszystko w jednym obiekcie i możemy się odwołać do tego skąd tylko chcemy. Unikamy możliwości nieautoryzowanej modyfikacji tej tablicy z innych obiektów. Innymi słowy zachęcam do pełnego uobiektowania swojego projektu, a nie korzystania z odwołań globalnych typu $_SESSION['tablica1']; gdzie każda funkcja może coś tam nam nabigosić.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 06:52 |