Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] Schemat kalsy, i jej działanie
piraciq
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 4
Dołączył: 27.07.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam srdecznie,

Wygląda na to,iż będę tu dosyć często zaglądał.

Tak jak w temacie chodzi mi o schemat klasy i jej działanie.
  1. <?php
  2. class userRegist
  3. {
  4.     konstruktor - używam go do przeniesienia połączenia z baza danych
  5.  
  6.     funkcja sprawdzająca poprawność email zwraza true
  7.    
  8.     funkcja sprawdzająca czy podany email jest w bazie zwraca false jesli adres istnieje
  9.  
  10.     funkcja sprawdzająca długość podanego hasła zwraca true jeśli hało ma więcej niż x znaków
  11.  
  12.    funkcja sprawdzająca czy hasło i powtórzenie hasła pasują do siebie zwraca true
  13.  
  14.      funkcja do sprawdzania tokena przepisanego i wygenerowanego zwraca true    
  15. }
  16. ?>


i teraz tak jezeli email jest prawidłowy przechodzi do sprawdzania w bazie, jeżeli go nie ma w bazie zwraca true, sprawdza hasla zwraca true, sprawdza tokeny i zwraca true w wyniku czego następuje wsadzenie rekordu do bazy i wysłanie emaila pod wskazany adres. i jest ok.


ale chodzi mi o sprawdzanie wartosci (true, false) z funkcji normalnie rozwiazal bym to tak ale chodzi mi o jakieś może lepsze rozwiazanie

  1. <?php
  2. //funkcje i cała reszta z kasy
  3.  
  4. if(poprawnyEmail)
  5. {
  6.   if(!emailJestWBazie)// tu akurat oczekuje false
  7.     {
  8.        if(dlugoscHaslaJestOdpowiednia)
  9.          {
  10.              if(podaneHaslaSaTakieSame)
  11.               {
  12.                    if(tokenSaTakieSame)
  13.                    {
  14.                           $this->rejejstrracja;
  15.                      }
  16.                 }
  17.           }
  18.      }
  19. }
  20. ?>


mam nadzieję, że jasno to napisze!! Czy można by było to zapisać w jakiś inny sposób niż taki "blok" if?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcok
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 8
Dołączył: 15.10.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


~mike mówisz, że wyjątki służą do sytuacji wyjątkowych jednak idąc dalej tym tropem gdy wstawiasz w kod try ... catch przewidujesz wystąpienie anomalii więc po co catch lepiej upakować to w if'y. Mówisz, że kod taki wykonuje się dłużej, szczerze mówiąc nie wiem nie sprawdzałem jednak dla klasy obsługującej jedynie rejestracje - czynność zdecydowanie rzadszą od np. wyświetlania strony głównej etc. Moim zdaniem jest to sposób korzystniejszy abstrahując od wydajności kodu, która czasami nie jest tak ważna.

Ten post edytował marcok 16.10.2008, 06:08:12
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(marcok @ 16.10.2008, 07:06:08 ) *
Mówisz, że kod taki wykonuje się dłużej, szczerze mówiąc nie wiem nie sprawdzałem jednak dla klasy obsługującej jedynie rejestracje - czynność zdecydowanie rzadszą od np. wyświetlania strony głównej etc.
Dobre nawyki programowania powinno sosować się zawsze. Jeśli czasem odpuszczasz "bo to tylko jedna klasa" to po pewnym czasie pisząc dużą aplikację połowa to będzie jakiś "spaghetti code".
Tu dopuszczasz sprawdzaine parametrów przy rejestracji, tak? A podczas wykonywania dowolnej innej akcji jak sprawdzasz parametry żądania? Inaczej?
Po co dwa różne sposoby? COś mam wrażenie, że gdzieś indziej też byś tak zrobił a "dowolna inna akcja" wykonuje się już "trochę" częściej niż rejestracja.
Cytat(marcok @ 16.10.2008, 07:06:08 ) *
Moim zdaniem jest to sposób korzystniejszy abstrahując od wydajności kodu, która czasami nie jest tak ważna.
W takim razie mam proste pytanie. Co zyskujesz, skoro tak jest korzystniej?

Cytat(marcok @ 16.10.2008, 07:06:08 ) *
~mike mówisz, że wyjątki służą do sytuacji wyjątkowych jednak idąc dalej tym tropem gdy wstawiasz w kod try ... catch przewidujesz wystąpienie anomalii więc po co catch lepiej upakować to w if'y.
Spłaszczasz problem. Oczywiście, że można pokazać sytuacje kiedy wiesz, że coś może wystąpią ale nadal będzie to dla Ciebie niespodziewane. ~Crozin pokazał przykład.
Kolejny przykład - łączysz się z bazą, to połączenie zawsze powinno być ale dopuszczasz możliwość, że baza padła. Sieci nie ma. Dane dostępowe się zmieniły. Dajesz to w try ... catch bo niby połączenie zawsze powinno istnieć ale co jeśli?
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: 5.10.2025 - 05:12