server-side programming language we know. w3techs.com Webové aplikace v Javě ale nemají na růžích ustláno - méně rozvinutý ekosystém knihoven a frameworků, malá komunita, nepohodlný vývoj kvůli dlouhým deploymentům při každé změně kódu.
v Javě - sice si musíme občas vypomoct komentářem, ale ve většině případů dokážeme přesný typ každé proměnné také určit. Co kdybych se pokusil o podobnou statickou analýzu?
PHP Token Reflection Kdybych pro analýzu využíval interní reflexi v PHP, tak by můj nástroj padal na výskytech parse errorů, duplicitních tříd apod., což si nelze dovolit. Token Reflection reimplementuje reflexi po svém, takže PHP proces na chybách nespadne.
https://scrutinizer-ci.com/ PHP Analyzer dělá přesně to, co jsem si kladl za cíl. Kromě hledání chyb v kódu dokáže detekovat i nepoužité proměnné, nedosažitelné příkazy (za returnem) atd. Využívá k tomu PHP- Parser, reflexi si naimplementoval po svém.
používání __call, __set, __get apod. • Nepoužívat $container->get('service'), $this['form'] apod. • Dynamický kód - reflexe, $$varName, new $class • call_user_func
of coding standards. PHP_CodeSniffer Kontrola jednotného coding standardu, ale i prevence chyb - např. vynucení ===. Pracuje vždy pouze v rámci jednoho souboru, takže k analýze kódu je nevhodný.
for several potential problems within that source. PHP Mess Detector Kontrola metrik kódu - délka a komplexita metod, nepoužité proměnné... Opět pouze v rámci jednoho souboru.
do bytecodu pro VM alá Java. Typehinting skalárních parametrů, typová pole, statická analýza. Nyní pouze pro PHP 5.2, ale jednou snad bude použitelný namísto oficiální implementace.