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%)
-----


Możesz mieć poważny problem ze znalezieniem takiego narzędzia bo:
1. Pierwsze dwa punkty są w pełni poprawnym kodem PHP.
2. Poprawność dwóch ostatnich da się sprawdzić dopiero w czasie wykonywania:
  1. $a = 'd';
  2. $$a = 'c';
  3.  
  4. echo $d; // dopiero w czasie wykonywania można określić istnienie tej zmiennej
  5.  
  6. // ---------
  7.  
  8. $inc = /* pobierz skądś wartość "Object" */;
  9. require '..../libs/' . $inc . '.php';
  10. $obj = new Object(); // dopiero w czasie wykonywania można określić istnienie klasy Object
A wszystkie tego typu narzędzia dadzą Ci informacje o błędzie jedynie w przypadku, gdy są one tego pewne.
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: 7.10.2025 - 22:47