Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie poprawności kodu PHP
Forum PHP.pl > Forum > PHP
pakonet
php przy uruchamianiu skryptu parsuje tylko składnię. Sprawdzanie poprawności odwołań do funkcji, klas, metod, itd. następuje dopiero przy wykonywaniu danego fragmentu kodu. A da się jakoś zmusić parser php żeby od razu sprawdzał cały skrypt?

Próbowałem wykorzystać do sprawdzania moich skryptów plugin TruStudio Foundation do Eclipse'a, ale tamten parser kodu nie działa najlepiej. Przykładowo dla takiego kodu:

Kod
if($DB->next_record()) {
  ...
} else {
  ...
}


zwraca mi warning że mam niepotrzebnego else'a sad.gif.
hwao
Kod
D:\wamp\php>php -h
Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.
  -h               This help
  -i               php information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run php <code> without using script tags <?..?>
  -B <begin_code>  Run php <begin_code> before processing input lines
  -R <code>        Run php <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run php <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin


Poproboj z tym, nie wiem czy Ci pomoze ale warto sprobowac...
dr_bonzo
@pakonet: php to jeszyk interpretowany, nie kompilowany -- wiec nie sprawdzisz w czasie kompilacji czy prawidlowo odwolujesz sie do metod, itd.
Jedyna metoda na to to dobre IDE i podpowiadanie skladni.
pakonet
@hwao: Jedyna interesująca opcja to -f, ale ona sprawdza tylko poprawność składniową.

@dr_bonzo: No ale w dobrych IDE jakoś to parsowanie jest zrobione - sprawdzają np. czy funkcje/metody do których się odwołujemy istnieją. Zainteresowałbym się Zendem 5, ale wersja Professional kosztuje $299 (a studencka licencja za $99 zapewne nie pozwala na wykorzystanie do celów komercyjnych).
Bora
Eclipse + phpeclipse
dr_bonzo
"a studencka licencja za $99 zapewne nie pozwala na wykorzystanie do celów komercyjnych)."

pozwalaja, nawet po skonczonych sudiach -- PMadej gdzies o tym pisal, na forum lub w swoim blogu,
** EDIT
A dokladniej tu:
http://nysander.quanteam.info/?sectionid=7
Fipaj
Cytat
Eclipse + phpeclipse
= xored::TruStudio
sekcja2
Bawilem sie Eclipsem, jest swietny ale.... ma jeden maly mankament - nie posiada mozliwosci dostania sie zdalnie do pliku. Jest tam jakis plugin do ftpa (ftp/webdav) ale to jest niewypal (czesto sie wiesza i wogole dziala bez sensu).

Aktualnie siedze na pajaczku i szukam IDE ktore pozwala zdalnie pracowac nad plikiem - czasem szybko musze cos zmienic i nie mam czasu tworzyc nowego projektu zgrywac go i wogole bawic sie.

ps. jesli zna ktos jakis plugin do eclipsa ktory obsluguje dobrze ftp to plisss napiszcie mi jego nazwe
pakonet
@dr_bonzo: Hmm... $99 to już brzmi lepiej, będę się musiał zastanowić smile.gif

@sekcja2: To prawda, obsługa FTP w tym pluginie WebDAV pozostawia wiele do życzenia. Swoją drogą samo xored::TruStudio też nie przypadło mi do gustu - sypało się dziwnie po zaimportowaniu mojego projektu.
bela
sekcja: Zend Studio
pakonet
A propo Zend Studio - ściągnąłem wersję trial, narazie całkiem przyjemnie się prezentuje. Doszedłem już, że mogę dodać serwer FTP jako wirtualny "dysk" i edytować zdalne pliki. Ale w takim przypadku nie mam lokalnej kopii serwisu. W edytorach takich jak Macromedia Dreamweaver jest taka opcja jak "Upload on save" - edytuje sobie lokalną kopię, a po naciśnięciu zapisz jest ona wysyłana na serwer FTP. Jest również możliwość synchronizacji lokalnej kopii z serwerem FTP. Czy Zend Studio oferuje podobne możliwości?
NuLL
[OT]Pytanie dot edytorow tutaj -> http://forum.php.pl/index.php?showtopic=10324[/OT]
sekcja2
Znam Zenda ale nie robie tak wielkich i dorgich projektow zeby zaa niego tyle placic, jak juz napisalem wyzej - Eclipse jest swietny i wrecz idealny gdyby nie ten maly szczegolik...

trudno sie mowi, szuka sie dalej
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.