Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Parametry metody w klasie
dyktek
post
Post #1





Grupa: Zarejestrowani
Postów: 240
Pomógł: 0
Dołączył: 18.01.2004
Skąd: rzeszów / kraków

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


Witam, napisałem sobie klase sterującą skryptem, która otrzymuje obiekt żądania i na jego podstawie uruchamia odpowiednią klasę i odpowiednią metode w klasie. Problem polega na tym że nim wywołam żądaną metodę chciałbym sprawdzić z jakimi parametrami dana metoda jest zdefiniowana w klasie. Potrzebuje to do takiego rozwiązania. Przykładowe żądanie:

?klasa=art&metoda=news&sort=desc&limit=10

no i na tej podstawie wywołana ma zostać klasa art a w niej metoda news, i teraz jakoś trzeba by sprawdzić jakie żądana metoda ma parametry i czy te parametry zostały przesłane w żądaniu.

no chyba że w tymprzypadku pozostaje mi jedynie dopisanie jakiegoś pliku, który przetrzymuje takie informacje ale to byłoby dość dziwne bo klas mam kilka i w kazdej wiele metod.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
by sprawdzić jakie żądana metoda ma parametry
To ci sie raczej nie uda. Jakos nie kojarze by istnialo cudo do tego.

A nie mozesz w żadaniu pisac: ?klasa=art&metoda=news&sort=desc&limit=10&par[]=1&par[]=2&par[]=3
a w php:
  1. <?php
  2. print_r($_GET['par']);
  3. ?>

Pod $_GET['par'] bedziesz mial tablice parametrow jakie masz przekazac do funkcji.

ps: swoja drogą to troche nieciekawie masz to zrobione. To kazdy bedzie mogl ci teraz uruchomic dowolna metode w Twoim skrypcie. Wystarczy ze linka spreparuje. Na dodatek metody i klasy beda widoczne (ich nazwy) bo ty takie linki generujesz

edit:
@TomASS nono, dzieki za cynk (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
TomASS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
Cytat
by sprawdzić jakie żądana metoda ma parametry

To ci sie raczej nie uda. Jakos nie kojarze by istnialo cudo do tego.

Nospor, nie jestem na 100% pewny, ale może klasy Reflection pomogą:
Cytat
Dzięki nim można odczytać dowolną informację na temat klasy lub metody.
Go to the top of the page
+Quote Post
dyktek
post
Post #4





Grupa: Zarejestrowani
Postów: 240
Pomógł: 0
Dołączył: 18.01.2004
Skąd: rzeszów / kraków

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


w rzeczywistości jest to napisane nieco inaczej, jako przykład tak napisałem żeby jasno naświetlić problem.

ostatecznie wydaje mi się że lepszym rozwiązaniem będzie coś takiego że na podstawie żądania podnoszony jest obiekt, który jest modelem np. newsów czyli np tak.

  1. <?php
  2. class Load
  3. {
  4.  
  5. private $sModule;
  6. private $oReq
  7.  
  8. public __construct( $oRequest ){
  9.  
  10. $this -> oReq = $oRequest
  11. $this -> sModule = $oRequest -> get_req('module', 'get');
  12. }
  13.  
  14. public function zaladuj(){
  15.  
  16. //sprawdz czy żądanie moze zostać obsłużone
  17.  
  18. return new $this -> sModule();
  19.  
  20. }
  21. }
  22. ?>


i teraz obiekt newsów jest podniesiony wiec pozostaje wyświetlić widok newsów. takie rozwiązanie chyba będzie lepsze od tego pierwszego bo nie muszę się martwić o sprawdzanie parametrów metody ponieważ load wywoła obiekt a widok obsłuży resztę żądania czyli w widoku zostanie wywołana odpowiednia metoda z obiektu, który będzie modelem newsów. chyba nie zamotałem aż tak bardzo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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 - 15:08