Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie gdzie jest ustawiana zmienna
Forum PHP.pl > Forum > PHP > Object-oriented programming
Pilsener
Cześć. Mam np. taką metodę:

  1. public function isReadyForRedirect()
  2. {
  3. $this->getSource()->manipulateQuery(function($builder) {
  4. $this->search->applyTo($builder);
  5. });
  6. }


Zmienna $builder zawiera obiekt queryBuilder z zapytaniem do bazy.
Jaki jest najłatwiejszy sposób sprawdzenia, gdzie ten obiekt jest tworzony, ustawiany etc?
redeemer
Najpierw trzeba zrozumieć co ten kod robi. Wywołujesz metodę manipulateQuery i jako argument podajesz funkcje anonimową (która przyjmuje jakiś argument). W związku z czym musisz poszukać w metodzie manipulateQuery jak jest wywoływany jej argument (funkcja) i z jakim parameterem.

Kod
function manipulateQuery($func) {
    $x = ...;
    $func($x);
}
Pilsener
Deklarację tej metody już widziałem wcześniej:
  1. /**
  2.   * @param callable $callback
  3.   * @return $this
  4.   */
  5. public function manipulateQuery($callback = null)
  6. {
  7. $this->prepareQueryCallback = $callback;
  8.  
  9. return $this;
  10. }


Pewnie ma to jakiś związek z miejscami takimi jak to:
  1. call_user_func($this->prepareQueryCallback, $queryBuilder);


Radzę sobie trochę tak, że rzucam wyjątkiem i analizuję stackTrace. Jak ktoś ma jeszcze jakieś dobre pomysły jak radzić sobie z takim kodem może tu dopisze wink.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.