Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciągnięcie treści metody, klasy
UDAT
post 21.06.2007, 14:24:06
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Od razu ostrzegam, że nie jest to zadanie trywialne.

Jak wyciągnąć treść ( ale tylko ) dowolnej metody, klasy, funkcji, itp., bez użycia tokenizera na całym projekcie + małego interpretera?

Próbowałem z ReflectionAPI:
Kod
      public string getFileName()
      public int getStartLine()
      public int getEndLine()


ale czasami niezbyt się przydaje, np.:
  1. <?php
  2. /**
  3. class foo { public function bar(){} } */ class foo2 { const STALA='class foo { public function bar2(){} }'; } class foo { public function bar32(){} }
  4. ?>


lub
  1. <?php
  2. class foo {
  3.  public function bar ( ) {
  4.  include ( 'jakis plik' );
  5.  }
  6. }
  7. ?>


Zadanie polega na wyciągnięciu treści metody foo::bar();

Ten post edytował UDAT 21.06.2007, 14:24:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
starach
post 21.06.2007, 16:04:53
Post #2





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

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


Skoro nie Reflection to może pobranie zawartości pliku w którym znajduje się klasa i wykonanie serii pregów ?
Go to the top of the page
+Quote Post
UDAT
post 21.06.2007, 18:22:00
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Cytat(orglee @ 21.06.2007, 17:04:53 ) *
Skoro nie Reflection to może pobranie zawartości pliku w którym znajduje się klasa i wykonanie serii pregów ?


No nie do końca mam pomysł na te wyrażenia regularne ( ma takie same wady jak tokenizer + muszę napisać wyrażenia, które raczej nie będą proste ), więc wolę od tego użycie tokenizera + wyszukanie require'ów, bo z includami to nie wiem co zrobić, przy czym nadal szukam prostszego sposobu.
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: 14.08.2025 - 00:48