PHP 소스 파일에 대한 정적 분석 도구가 있습니까? 이진 자체는 구문 오류를 확인할 수 있지만 다음과 같이 더 많은 일을 찾고 있습니다.
- 사용되지 않은 변수 할당
- 먼저 초기화하지 않고 할당 된 배열
- 코드 스타일 경고
- …
답변
명령 행에서 lint-mode로 php를 실행하여 실행하지 않고 구문을 검증하십시오.
php -l FILENAME
고급 정적 분석기에는 다음이 포함됩니다.
- php-sat – http ://strategoxt.org/ 필요
- PHP_Depend
- PHP_CodeSniffer
- PHP 메시지 탐지기
- PHPStan
- PHP-CS-Fixer
- phan
하위 레벨 분석기에는 다음이 포함됩니다.
- PHP_Parser
- token_get_all (기본 기능)
PHP의 동적 특성으로 인해 일부에 더 유용한 런타임 분석기는 다음과 같습니다.
- Xdebug 는 코드 커버리지 와 함수 트레이스를 가지고 있습니다.
- 내 PHP Tracer Tool 은 Xdebug의 함수 추적을 기반으로 조합 된 정적 / 동적 접근 방식을 사용합니다.
문서 라이브러리 phpdoc 및 doxygen 은 일종의 코드 분석을 수행합니다. 예를 들어 Doxygen은 graphviz 를 사용하여 멋진 상속 그래프를 렌더링하도록 구성 할 수 있습니다 .
또 다른 옵션은 xhprof 이며 xdebug와 비슷하지만 더 가벼워 프로덕션 서버에 적합합니다. 이 도구에는 PHP 기반 인터페이스가 포함되어 있습니다.
답변
답변
완성도 -phpCallGraph 도 확인 하십시오 .
답변
PHP Mess Detector 는 훌륭하고 빠릅니다.
답변
나는 $ php -l을 사용하고 다른 도구를 사용하려고 시도했다. 그러나 내 경험 중 가장 좋은 것은 (물론 YMMV) pfff toolset 검사 입니다. Quora에서 pfff에 대해 들었습니다 ( http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool )
컴파일하고 설치할 수 있습니다. 좋은 패키지는 없습니다 (내 민트 데비안에서는 먼저 libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev 및 libgimp2.0-dev 종속성을 설치해야 함)는 가치가 있습니다.
결과는 다음과 같이보고됩니다
rjha@mint ~ $ ~/sw/pfff/scheck ~/code/github/sc/
login-now.php:7:4: CHECK: Unused Local variable $title
go-automatic.php:14:77: CHECK: Use of undeclared variable $goUrl.
답변
복사 / 붙여 넣기 / 편집 된 코드를 찾는 “복제 탐지”도구 인 Semantic Designs의 CloneDR을 참조하십시오 . 공백, 주석 및 가변 이름 변경에도 불구하고 정확하고 거의 누락 된 코드 조각을 찾을 수 있습니다. PHP에 대한 샘플 탐지 보고서는 웹 사이트에서 찾을 수 있습니다. (저는 저자입니다).
답변
NetBeans IDE는 구문 오류, 사용되지 않은 변수 등을 검사합니다. 자동화되지는 않지만 중소 규모 프로젝트에 적합합니다.