Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PObranie nzwy metody w której została wywołana inna metoda.
Forum PHP.pl > Forum > PHP
Sajrox
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() */)
erix
Albo debug_backtrace, albo Reflection.
em1X
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
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.