Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pominięcie pewnej części skryptu
Forum PHP.pl > Forum > PHP
UDAT
A więc jak w temacie: Jak pominąć wykonywania początku skryptu, jednocześnie pozwalając kompilatorowi sparsować pominiętą część pliku.
Bo gdy dam np.
  1. <?php
  2. if (false)
  3. {
  4.  class foo{}
  5. }
  6. ?>


To dostaje na wyjściu 52 klasy wbudowane, ale nie ma mojej :/ Niby można byłoby przejechać po pliku wczytując wszystko oprócz wywołań funkcji, ale chyba da się łatwiej.

Albo zastępczo może ktoś wie jak wczutac dla ReflectionAPI zadany plik, a nie obecny.
dr_bonzo
Co ty kombinujesz?
Wstaw normalnie definicje klasy i nic sie nie stanie -- nie utworzy sie obiekt i zadna funkcja sie nie wywola.


Co chcesz osisagnac?
UDAT
Bo niestety kod wejściowy może też zawierać coś takiego:
  1. <?php
  2. class foo{}
  3. echo 'costam';
  4. class foo2{}
  5. ?>


Co chce osiągnąć questionmark.gif
Muszę zrobić pobieranie danych za pomocą ReflectionApi ze skryptów (dowolnych).

EDIT:
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę
dr_bonzo
  1. <?php
  2. include
  3. ob_costam -- usuwajace bufor
  4. ?>


i operuj na Reflection
UDAT
Nie wiem czy został zauważony mój dopisek:
Cytat
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę


Z tego co wiem połączenia do bazy danych nie są buforowane przez ob_start()
dr_bonzo
Cytat
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę


To juz chyba zaczynam rozumiec.


Przepusc kod przez wyrazenia regularne ktore zostawia TYLKO definicje klas i funkcji i dopiero to includuj i uzywaj na tym refleksji.

Nie powinenes miec kodu, typu

mysq_connect
i zaraz obok definicji klasy

w jednym pliku .
UDAT
Cytat
Nie powinenes miec kodu, typu

mysq_connect
i zaraz obok definicji klasy

w jednym pliku .

To nie będą moje pliki, to zadanie z infy tongue.gif

Zrobię to zgodnie ze wskazółką, ale ...
Da się filtrować (modyfikować) kod includowany przed/w czasie includem questionmark.gif Coś jak ob_start() dla treści wysyłanej.
mike
Przecież nie musisz tych plików dołanczać.
Możesz wczytać ich zawartość jako string - file_get_contents()
dr_bonzo
UDAT: napisz jeszcze raz od poczatku co masz zrobic i jakie pliki dostaniesz.

Cytat
Da się filtrować (modyfikować) kod includowany przed/w czasie includem questionmark.gif Coś jak ob_start() dla treści wysyłanej.

Przecez mozesz przefiltrowany plik zapisac pod inna nazwa i includowan, nie? smile.gif
UDAT
Chyba coś nie kontaktuję rolleyes.gif
Wczytać to przez file_get_contents i potem puścić przez eval, czy jakoś załadować do ReflectionApi questionmark.gif

EDIT
Klasy ReflectionApi nie mają nic co wskazywałoby na wczytaniu z pliku.

Cytat
Przecez mozesz przefiltrowany plik zapisac pod inna nazwa i includowan, nie?

Tak chyba będzie najprościej.

Polecenie brzmi.

Wypisać do pliku XML dane dotyczące klas, funkcji, metd, stałych itd. mając dany katalog z skryptem php(skrypty mogą być dowolne).
Dane tzn. : parametry, typy, statyczność, finalność, dziedziczenie, krótki opis, zwracaną wartość.
Należy wykorzystać ReflectionAPI, SimpleXML i format komentarzy PHPDoc:
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.