Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Framework. httpRequest
daniel1302
post
Post #1





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Witam, piszę klasę, która będzie pobierała dane odebrane od przeglądarki typu: COOKIE, SESSION, POST, GET itp.
Która koncepcja jest lepsza:
1.Moja- 1 Uniwersalna klasa dla wszystkich zmiennych:
  1. <?php
  2. $httpRequest -> _POST;
  3. $httpRequest -> _SESSION
  4. ?>


2. Kolegi- Dla każdego typu danych osobny obiekt który jest tworzony w klasie httpRequest
  1. <?php
  2. $httpRequest -> post() -> _get();[
  3. $httpRequest -> get() -> _get();
  4. ?>


Ten post edytował daniel1302 11.03.2009, 17:34:25
Go to the top of the page
+Quote Post
Quider
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 9
Dołączył: 6.03.2009
Skąd: Katowice

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


Nie rozumiem za bardzo zagadnienia, niemniej jednak jak porobisz sobie obiekt dla tablicy _POST jak i tablicy _GET czy tam _SESSION to mija się z celem.

Ja w swoim frameworku założyłem, że mogę mieć max 3 parametry w linku: np:

localhost/index.php?com=bleble&action=blublu&id=2

Stworzyłem też klasę, która "parsuje" link i załącza do skryptu klasę 'bleble' lub domyslna i metodę 'blublu' tej właśnie klasy oraz 3 parametr to jakis dowolny.

Możesz też stworzyć klasę Session, która będzie przypisywać zmienne do tablicy _SESSION, ale nie widzę sensu przetrzymywania zmiennych tablic _POST i _GET.
Go to the top of the page
+Quote Post
bim2
post
Post #3





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Ja propounej normlanie przekazywać parametry _GET, _POST itd. Jedynie filtrować je za pomocą array_map() lub jeśli nie chcesz czegoś przepurszczać przez filt, to w httpRequest zrób metody getInt('zmienna') getString() itd... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Ja w swoim frameworku rozwiązałem to tak:
Mam klasę Request, jej składową prywatną jest tablica asoscjacyjna będąca suma tablic $_GET i $_POST. W każdej chwili mogę sprawdzić dowolną zmienną z tych tablic metodą getRequest, np.
  1. <?php
  2. //sprawdzamy, czy wcisnieto przycisk ' Zapisz zmiany ' formularza
  3. if ( $Request->getRequest['submit_zapisz'] ) {
  4.    $imie = $request->getRequest['imie'];    // odpowiada $imie = $_POST['imie'];
  5.  
  6.  ...itd...
  7. }
  8. ?>

Dodatkowo w metodzie getRequest() oprócz parametru wprowadziłem walidację zmiennych i mogę sobie sprawdzać, czy np. przeslane POST-em pole formularza
to string o długości od 6 do 15 znaków (jeśli nie, to mamy błąd):
  1. <?php
  2. $imie = $request->getRequest('imie' , 'STRING' , 6 , 15 );
  3. if (!$imie) {
  4.  echo  Prosze poprawic blad w polu Imię;
  5. }
  6. ?>

Dodatkową korzyścią jest fakt, że nie musze sprawdzać, czy np. 'imie' przesłane zostało GET-em czy POST-em.

Z kolei o sposobie postępowania z $_SESSION (na podobnej zasadzie , w moim frameworku mam do tego klasę Session ) napisałem na mojej stronie internetowej i tam możesz sobie zobaczyć, jak ja to rozwiązałem:
http://rafjan.pl/index.php?s=wp&id=1
Go to the top of the page
+Quote Post
Black-Berry
post
Post #5





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Spójrz na to z trzeciej strony.... w php masz 4 tablice globalne $_GET, $_POST, $_SESSION, $_COOKIE. Powinieneś więc zrobić 4 osobne obiekty $get, $post, $session, $cookie. U siebie mam tylko własne $session ale gdybym miał pisać 3 pozostałe to jako niezależne obiekty.
Go to the top of the page
+Quote Post
daniel1302
post
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Dziękuje wszystkim temat zakończony wszyscy mają + ale największy blooregard
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 - 07:53