Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie klasy
Forum PHP.pl > Forum > Przedszkole
Loped
Witam. Chciałbym stworzyć klasę użytkownika, która bdzie zawierała wszystkie dane z tabeli 'uzytkownik'. Pierwszy raz to robię i chciałbym stworzyc taki efekt:

Kod
   if ($uzytkownik['rank'](lub $uzytkownik -> rank) !="Admin")
    {
        echo 'Nie jesteś Adminem!';
    }


Zmienna $uzytkownik by zawierała ta klasę i wskazywała ID użytkownika który jest aktualnie zalogowany.

Próbuję to zrobic w taki sposób:

Kod
class Uzytkownik
  {
      var $user;
      var $id;
      var $rank;


Teraz gorzej z funkcją. Wzoruje się na klasie z silnika gry Vallheru, gdzie bazuje tam smarty i szablony.

Kod
     function Player($pid)
      {
          global $db;
          $stats = $db -> Execute("SELECT * FROM players WHERE id=".$pid);
          $this -> user = $stats -> fields['user'];


Powyższy kod to kawałek klasy z owego silnika. Jak mogę napisać taką klasę, aby uzyskać tamten efekt? Co zawiera zmienna $pid? Bo próbuje to zrobić lecz mi nie wychodzi.
Crozin
Cytat
Próbuję to zrobic w taki sposób:
Kod
class Uzytkownik
{
     var $user;
     var $id;
     var $rank;
Mamy PHP5, więc nie stosuj PHP4.
Cytat
Teraz gorzej z funkcją. Wzoruje się na klasie z silnika gry Vallheru, gdzie bazuje tam smarty i szablony.
Na podstawie 5 linii kodu jakie widzę moge powiedzieć... nie wzoruj się na tym.

1) Jeżeli chcesz mieć coś w stylu:
  1. <?php
  2. $user = new User();
  3. echo $user['username']
  4. ?>
Czyli by móc się odwoływać do obiektu jak do tablicy, klasa User musi implementować interface ArrayAccess.
Chociaż IMO lepiej by było jakby klasa udostępniała zestaw getterów
  1. <?php
  2. $user = new User();
  3. echo $user->getUsername();
  4. ?>
Oczywiście może udostępniać gettery oraz implementować ArrayAccess jednocześnie.


Klasa User wg mnie powinna reprezentować każdego użytkownika - również niezalogowanego - tak więc proces autoryzacji mógłby u Ciebie wyglądać tak.
  1. <?php
  2. //gdzieś na początku robisz sobie
  3. $user = new User();
  4.  
  5. //później może być jakiś tam kod
  6.  
  7. //w skrypcie logującym dajesz jedynie
  8. $user->signIn($id_uzytkownika);
  9. ?>
Oczywiście wcześniej przeprowadzasz cały proces walidacji danych, logowania, by ostatecznie przekazać jeden parametr z id użytkownika. Klasa w swoim wnętrzu pobierze odpowiednie dane, które będą przechowywane w sesji.
webdice
Proszę dodać tag w tytule, w innym wypadku wątek zostanie zamknięty.
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.