Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PObranie nzwy metody w której została wywołana inna metoda.
Sajrox
post 6.08.2010, 09:32:33
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Witam,

Trudno mi jest nazwać mój problem, dlatego postaram się dokładnie go opisać.

Otóż posiadam Model a w nim metodę get_data()
  1. class Users extends Model
  2. {
  3. public function get_data($params, $limit, $order)
  4. {
  5. Cache::init(__CLASS__, __METHOD__, func_get_args());
  6.  
  7. // Jakaś operacja pobierania danych z bazy
  8. }
  9. }


Klasa Cache z metodą init zapisuje cache (nie pytajcie jak), pobierajać do identyfikacji cache nazwe klasy, metody i parametrów metody get_data().
Tylko że za każdym razem muszę podawać argumenty __CLASS__, __METHOD__, func_get_args() w metodzie init().

Czy mozna to robić w inny sposób ? Tak aby metoda init() odczytała sama z tórej klasy i metody została wywołana i zapisała wszystkie dane ?
Jeśli w samej metodzie init() w Cache uzyje __CLASS__, __METHOD__, func_get_args(). To one beda się odwoływać do Cache::init czyli:

__CLASS__ => Cache
__METHOD__ => init
func_get_args() => array()

a ja chce

__CLASS__ => Users
__METHOD__ => get_data
func_get_args() => array(/* wartości argumentów w metodzie get_data() */)


Ten post edytował Sajrox 6.08.2010, 09:41:36
Go to the top of the page
+Quote Post
erix
post 6.08.2010, 09:53:54
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Albo debug_backtrace, albo Reflection.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
em1X
post 7.08.2010, 14:04:13
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


chyba jest łatwiejszy sposób smile.gif

zdefiniuj metodę init w klasie Cache w nast. sposób:

  1. public function init($class=__CLASS__, $method=__METHOD, $args=func_get_args()) {
  2.  
  3. }


przy wywołaniu jej parametry załadują się domyślnie bez ręcznego ich przekazywania smile.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:19