Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> statyczna analiza kodu
jaTroll
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.04.2009

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


Witam wszystkich

Szukałem ostatnio jakiegoś narzędzia do statycznej analizy kodu, w szczególności zależy mi na detekcji kilku "konstrukcji" które w 99% wypadków są wynikiem błędu np:

* $$zmienna
* $obj->$pole
* $obj = new Object(), ale Object.php nie był zainkludowany
* ostrzerzenie o użyciu lokalnej zmiennej, która nie została zainicjowana

Znalazłem takie narzędzie: http://pear.php.net/manual/en/package.php....codesniffer.php. Problem w tym, że przynajmniej w podstawowej wersji, sprawdza zgodność ze standardami kodowania typu, czy każda funkcja poprzedzona jest dokiem. Dla mnie to trochę za mało. Prawdopodobnie część z rzeczy o które mi chodzi da się załatwić pisząc wtyczkę do tego narzędzia, ale może istnieje coś z czym będzie mniej problemów.

Czy ktoś słyszał albo miał styczność z takim narzędziem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Niczego nie dam sobie za to uciąć, ale raczej nie istnienie nic gotowego co by spełniało Twoje oczekiwania. Potrzebujesz wykryć "brzydkie praktyki", a PHP-owskie narzędzia nadal mają problem z wykrywaniem błędów. (IMG:style_emoticons/default/wink.gif)

1. Część problemów mógłby chyba rozwiązać tokenizer PHP, który wykrywa takie rzeczy jak zmienne zmiennych czy dynamiczne odwoływanie się do nazwy właściwości (przypadki #1 i #2).
2. Jednak tak na prawdę testy jednostkowe to tutaj najłatwiejsze i najstabilniejsze rozwiązanie. Zresztą takie błędy raczej skutkować będą fatal errorami, więc szybko da się je wyłapać ([nie]stety).
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: 8.10.2025 - 13:41