Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Dostep do pól innej klasy
Forum PHP.pl > Forum > Przedszkole
Bolt
Mam pytanie. Jak uzyskać w OOP dostęp z jednej klasy do pól drugiej osobnej klasy? Chodzi mi o to że mam np. pola z hasłem i nickiem użytkownika i chcę je sprawdzić czy są poprawne z użyciem innej klasy do tego napisanej. Interface'ami czy czym? Np. Coś takiego przy systemie logowania np. klasa odpowiadająca za pobieranie danych, a druga za logowanie użytkownika.

  1. <?php
  2.  
  3. class pobierz { // tu klasa pobierajaca dane z bazy danych z metodami.
  4.  
  5.  public function cos() {
  6.  }
  7.  
  8. }
  9.  
  10.    class sign { // tu klasa sprawdzajaca i logujaca uzytkownika z jakims metodami odpowiadajacymi np. za sprawdzanie poprawnosci usera
  11.    
  12.    public function signin () {
  13.    }
  14.  
  15.    }
  16.  
  17. ?>
blooregard
Możesz w klasie, w której chcesz sprawdzić dane usera, dodać właściwość: obiekt klasy User i np. przekazać zalogowanego usera jako argument metody:

Kod
class jakasTam {
    
    private jakasTam_user;

    public function jakasAkcjaTylkoDlaZalogowanegoUsera($user) {
         $this->jakasTam_user = $user;
         $this->jakasTam_user->sprawdzUprawnienia();
         $this->jakasTam_user->sprawdzCzyZalogowany();
          .....
         (i tak dalej)

         .....
    }//
}


A w kodzie tworzysz sobie nowy obiekt klasy jakasTam i przekazujesz do tej metody obiekt klasy User:

Kod
$User = new klasaUser();
...
(tu logowanie i inne rzezcy)
....

jakasTamObjekt = new jakasTam;
jakasTamObiekt->jakasAkcjaTylkoDlaZalogowanegoUsera($User);


Ale to tylko jedno z rozwiązań
Bolt
Ok, ale jak będzie lepiej tak czy z wykorzystaniem np. interfejsu ? Chodzi mi o szybkość działania. Chcę zrobić taki system logowania, że będzie jedna klasa do pobierania danych taki jakby sterownik do pobierania ich , a druga sprawdzająca i logująca użytkownika. Czy takie rozwiązanie jest opłacalne z tą klasą pobierającą dane z bazy ?
drPayton
A co ma piernik do wiatraka? Za pomocą interfejsu danych nie przekażesz, takie rzeczy to tylko w Erze winksmiley.jpg Interfejs wymusza jedynie implementację określonych metod publicznych. Jeśli chcesz korzystać z tych samych danych w jednej klasie to:
1. Sposób podany wyżej
2. Wzorzec Registry (szukaj na forum, ino niekoniecznie na przedszkolu) - w skrócie globalny kontener (=rejestr) dla danych
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.