![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 0 Dołączył: 30.05.2007 Skąd: Kleszczów Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem sobie klasę SQL do obsługi bazy. Nic nadzwyczajnego. Mam też dwie inne klasy: Extenstion (ładuje mi klasy rozszerzeń) i klasę Auth (klasa z autoryzacja uzytkownika). Na czym polega problem? Nie umiem się w klasie Auth odwołać do bazy danych. Podam kod i może będzie jaśniej:
Część kalsy SQL
Klasa extension
i klasa AUTH (jej część)
Nie wiem w jaki sposób odwołać sie w metodzie login do bazy danych. Próbowałem poprzez $this->db->setSql(), przez $db->setSql(), setSql i nic, dostaję komunikat Kod Call to a member function set_sql() on a non-object inobject Co robię źle? Widziałem podobny mechanizm u kumpla, ale on siedzi w wojsku i nie ma mi jak wyjaśnić co zrobił :/ Ten post edytował rasgan 13.07.2007, 10:39:04 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Ja proponuję takie rozwiązanie:
Obiekty przechowywane są w zmiennej statycznej klasy Extension, więc nie są one gubione przy tworzeniu nowych obiektów tej klasy. Mankamenty: - Klasa Extension nie może mieć zmiennej publicznej o nazwie identycznej, jak nazwa którejś z twoich klas (chociaż nie wiem czy będziesz potrzebował jakiekolwiek zmienne publiczne w klasie Extension) - Brak możliwości przekazania parametrów do konstruktora wywoływanej klasy. Można to uzyskać przez zamianę magicznej metody __get() na magiczną metodę __call(), a następnie obiekty tworzyć przy użyciu eval" title="Zobacz w manualu PHP" target="_manual - jednak takie rozwiązanie mi się osobiście nie podoba. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 22:01 |