PHP - obiektowe PHP - API Reflection - prosty przykład

DZIAŁANIE:
Class [  class Serwis ] {
  @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 2-95

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [4] {
    Property [  public $tresc ]
    Property [  public $tytul ]
    Property [  public $keywords ]
    Property [  public $menu ]
  }

  - Methods [8] {
    Method [  public method __set ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 14 - 17

      - Parameters [2] {
        Parameter #0 [  $nazwa ]
        Parameter #1 [  $wartosc ]
      }
    }

    Method [  public method pokazTytul ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 19 - 22
    }

    Method [  public method pokazKeywords ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 24 - 27
    }

    Method [  public method pokazCSS ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 29 - 48
    }

    Method [  public method pokazNaglowek ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 50 - 59
    }

    Method [  public method pokazMenu ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 61 - 69

      - Parameters [1] {
        Parameter #0 [  $menu ]
      }
    }

    Method [  public method pokazStopke ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 71 - 80
    }

    Method [  public method piszSerwis ] {
      @@ /homez.106/soundpag/www/kurs_php/kurs/obiektowy_serwis/serwis.inc.php5 82 - 94
    }
  }
}
 

Kod:

Ewentualne Objaśnienia:

Kolejny ciekawy mechanizm PHP 5 to API Reflection. Pozwala on na analizę klas i obiektów, odczyt ich zawartości czy struktury. Może się to przydać kiedy mamy do czynienia z klasami nieznanymi, nieudokumentowanymi, kiedy przykładowo wykorzystuje się interfejsy do szyfrowania skryptów napisanych w PHP .

W tym bardzo prostym przykładowym ( API Reflection jest skomplikowane i ma spore możliwości ) odczytujemy wszelkie informacje na temat klasy, którą napisałem w przykładzie obiektowego serwisu WWW.

Jak widać tworzymy obiekt klasy Reflection, która ma swoją metodę specjalną __toString do wyświetlenia danych ( bo jak widać wywołujemy echo $a ). HTMLowe znaczniki PRE są tutaj po to aby aby wynik był dobrze widoczny, oddzielane są wiersze kody - sprawdźcie jak wyglądałoby to bez tych znaczników, co najmniej nieczytelnie.