Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablice (niby) globalne.
Fluke
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Quadina
post
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ć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 06:52