Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Który sposób lepszy
Forum PHP.pl > Forum > Przedszkole
Albitos
Postanowiłem na swojej stronie skorzystać z systemu szablonów, aby oddzielić treść od logiki i ułatwić późniejsze modyfikcje. W zaiązku z tym mam takie pytanie, który sposób na przekazanie zmiennych do OPT i zwrócenie komunikatu jest lepszy.

Pierwsza propozycja:
Jakas funkcja wewnątrz klasy:
  1. <?php
  2. function checkUser($id)
  3. {
  4. if(!is_numeric($id)
  5. {
  6. return -2;
  7. }
  8.  
  9. $user = $db -> Execute('SELECT * FROM USERS WHERE `id`='.$id);
  10. if(!$user -> fields['id'])
  11. {
  12. return -1; // Tutaj rownie dobrze moze byc FALSE, albo 'N'
  13. }
  14. else
  15. {
  16. return $user -> fields;
  17. }
  18. }
  19. ?>


Plik php:
  1. <?php
  2. $result = $klasa -> checkUser($_GET['id']);
  3. $tpl -> assign('result', $result);
  4. ?>


No i wreszcie pliki opt:
  1. <?php
  2. {if $result > 0)
  3. Witaj {$result['login']}
  4. {elseif $result == -1}
  5. Nie ma takiego usera
  6. {else}
  7. Podałeś nieprawidłowe id.
  8. {/if}
  9. ?>


Druga propozycja:
Jakas funkcja klasy:
  1. <?php
  2. function checkUser($id)
  3. {
  4. if(!is_numeric($id))
  5. {
  6.  return 'Podales nieprawidzlowe ID';
  7. }
  8. $user = $db -> Execute('SELECT * FROM `users` WHERE `id`='.$id);
  9. if(!$user -> fields['id'])
  10. {
  11. return 'Nie ma takiego usera';
  12. }
  13. else
  14. {
  15. return 'Witaj '.$user -> fields;
  16. }
  17. }
  18. ?>


Plik php:
  1. <?php
  2. $result = checkUser($_GET['id']);
  3.  
  4. $tpl -> assign('result', $result -> fields['login']);
  5. ?>


No i .tpl
  1. <?php
  2. {$result}.
  3. ?>



Chodzi mi konkretnie o to, czy jest sens robienia warunkow (podczas pisania czegos bardziej skomplikowanego bardzo pomieszanych) w plikasz szablonow, skoro moge tam przekazac gotowy wynik do wyswietlenia... Co prada w tym przykladzie nie do konca jest jasne o co chodzi, ale np. przy rejestracji uzytkownikowi moze wyswietlic sie 5 roznych bledow (puste pole, powtorzony login, powtorzony mail, zle haslo itd.). Gdy przekazuje wyniki jako liczby (albo wartosci TRUE, FALSE, 'Y', 'N' etc.), w szablonach tworza sie bardzo skomplikowane warunki. A w koncu nie o to chodzi. Czy moge przekazywac gotowy tekst do szablonu i czy ma to sens? Caly skrypt pisalem od podstaw i ma sluzyc tylko za przyklad, wiec gdzies moze byc blad. Nie zwracajcie na to uwagi winksmiley.jpg.
dr_bonzo
NA pewno nie rob tego tak:
  1. <?php
  2. {if $result > 0)
  3. Witaj {$result['login']}
  4. {elseif $result == -1}
  5. Nie ma takiego usera
  6. {else}
  7. Podałeś nieprawidłowe id.
  8. {/if}
  9. ?>


Stworz tablice z komunikatami bledow, indeksowana kodami bledow, przekaz ja do OPT i pobierz z niej komun. na podst. kodu bledu.
Albitos
Moglbys mniej wiecej pokazac jak to mialoby wygladac? Musialbym wtedy do OPT dodac funkcje pobierajaca klucz z tablicy, czy tak?
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.