Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Reflection - Wylistowanie metod klasy
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Witam.
Napisałem całkiem obszerną klasę i chciałbym teraz zrobić do niej dokumentacje jako że zawiera ona ponad 40 metod to chciałbym uniknąć kopiowania ich. Nie używałem klasy reflection jeszcze a dobrej dokumentacji znaleźć do tego nie mogę. Przyznam że nie chce mi się też dochodzić do tego jak się jej używa metodą prób i błędów. Czy miałby ktoś gotowy skrypt który wylistowałby mi wszystkie metody klasowe ( zmienne też by mogły być )
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
starach
post
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Nie działa:
Fatal error: Cannot use object of type ReflectionClass as array in D:\WWW\orglee\index.php on line 19
Tępo skopiowałem i nie zwróciłem uwagi na błąd.

edit>
Nie można samych metod bez tych 'dodatkowych' informacji, czy trzeba się bawić eregi() ?

edit>>
[SOLVED]
  1. <?php
  2. $foo = new ReflectionClass('Table');
  3. $ar = $foo->getMethods(); // zwraca array obiektów ReflectionMethod
  4.  
  5. for($i = 0; $i < count($ar); $i++){
  6. $array[] = $ar[$i]->name;
  7. }
  8. ?>


Ten post edytował orglee 20.02.2007, 00:09:22
Go to the top of the page
+Quote Post
mysz
post
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 26.08.2006
Skąd: Szczecin

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


Cytat(orglee @ 19.02.2007, 21:30:55 ) *
[...]trzeba się bawić eregi() ?



Zdecydowanie, nie tykać eregi.
Go to the top of the page
+Quote Post
RABP
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2012

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


Cytat(mysz @ 20.02.2007, 11:47:15 ) *
Zdecydowanie, nie tykać eregi.


A w jaki sposób dynamicznie załadować do tablicy pobrane parametry wymagane przez konstruktor klasy?

Oto przykład:

Kod
$objReflection = new ReflectionClass("nazwaKlasy");//Dynamicznie podaję nazwę dołączanej klasy
$parametry = $objReflection->getConstructor()->getParameters();//Pobieram parametry wymagane przez konstruktor klasy
$tablicaParametrow = array();//Inicjuję tablicę dla parametrów

foreach($parametry as $parametr)
{
     array_push($tablicaParametrow, $parametr);//Ładuję do tablicy pobrane parametry
}

$obiektKlasy = $objReflection->newInstanceArgs($tablicaParametrow);//Tworzę instancję klasy z pobranymi parametrami


Jak chcę wylistować pobrane parametry, to podaje mi nazwę parametru np: Parameter #0 [ $jezyk ], ale bez oznaczenia, że wymagany w konstruktorze parametr, to np: $_GET['jezyk'].
Natomiast, jak do tablicy wstawię na sztywno oczekiwane parametry, to bez żadnego problemu powstaje nowy obiekt klasy.

Oto przykład:

Kod
$objReflection = new ReflectionClass("nazwaKlasy");//Dynamicznie podaję nazwę dołączanej klasy
$tablicaParametrow = array($_GET['jezyk']);//Parametry wpisane na sztywno
$obiektKlasy = $objReflection->newInstanceArgs($tablicaParametrow);//Tworzę instancję klasy z pobranymi parametrami


Macie może jakieś pomysły?

Ten post edytował RABP 13.08.2012, 10:05:06
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 18:46