Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> "Długi" 'if', czy wyjątki?
404
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


  1. if
  2. (
  3. isset($_GET['a']) && validate($_GET['a'], '/^[a-zA-Z0-9\-]+$/') &&
  4. isset($_GET['b']) && validate($_GET['b'], '/^[a-zA-Z0-9\-]+$/') &&
  5. isset($_GET['v']) && validate($_GET['v'], '/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/') &&
  6. isset($_GET['x']) && validate($_GET['x'], '/^([a-z0-9\!\&\-\ ]+)$/') &&
  7. $event = $this->event->get_details($_GET['a'], $_GET['b'], $asd)
  8. )
  9. {
  10. //...
  11. }

No niestety, ale jestem zmuszony do sprawdzenia tylu rzeczy. Pytanie tylko, czy zostawić to tak jak jest, czy skorzystać z wyjątków... Jak Wy radzicie sobie z tak masakrycznym kodem? (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Za pomocą klas. Załóżmy abstrakcyjnie coś w stylu:

  1. /model/forms/xxx
  2. $form = new Validator();
  3. $form->addValidator('pole1', array(new Validator_Regex)->addValidator('pole2', array(new Validator_Regex)

W kontrolerze:

  1. $f = new Model_Forms_Xxx();
  2. if ($f->dataValid()}...
Go to the top of the page
+Quote Post
d3ut3r
post
Post #3





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


  1. isset($_GET['a']) && validate($_GET['a'], '/^[a-zA-Z0-9\-]+$/')


Dlaczego funkcja validate nie sprawdzi czy zmienna istnieje ? wtedy odchodzi Ci isset i już nie będzie tak skomplikowane (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
no_face
post
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Lol, moze dlatego, ze zabezpiecza sie przed dostepem do nieistniejacego geta?

Chyba, ze miales na mysli takie wywolanie:

  1. validate('a', '/^[a-zA-Z0-9\-]+$/')
Go to the top of the page
+Quote Post
d3ut3r
post
Post #5





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Cytat
Lol, moze dlatego, ze zabezpiecza sie przed dostepem do nieistniejacego geta?
Chyba, ze miales na mysli takie wywolanie:


nie miałem (IMG:style_emoticons/default/biggrin.gif) , ehh no tak notice .... w takim razie sorry za wprowadzenie w błąd (IMG:style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
404
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


@viking: Twoje rozwiązanie wygląda na bardzo dobre. Będę musiał to przemyśleć i sprawdzić jak będzie się to sprawdzać w moim przypadku. Dzięki (IMG:style_emoticons/default/smile.gif)
@d3ut3r: nie wiem czemu nie przyszło mi to do głowy (IMG:style_emoticons/default/smile.gif) Dzięki za podsunięcie pomysłu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Niktoś
post
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Wydaje mi się, że w tym przypadku lepiej by było skorzystać z bloku try catch.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:16