문제

PHP 소스 파일에 대한 정적 분석 도구가 있습니까? 바이너리 자체는 구문 오류를 확인할 수 있지만 다음과 같이 더 많은 일을 찾고 있습니다.

  • 사용하지 않는 변수 할당
  • 먼저 초기화되지 않고 지정된 배열
  • 그리고 아마도 코드 스타일 경고
  • ...
도움이 되었습니까?

해결책

실행없이 구문을 검증하기 위해 명령 줄에서 린트 모드에서 PHP를 실행하십시오.

php -l FILENAME

고급 정적 분석기에는 다음이 포함됩니다.

하위 레벨 분석기에는 다음이 포함됩니다.

PHPS 동적 특성으로 인해 일부 사물에 더 유용한 런타임 분석기에는 다음이 포함됩니다.

문서 라이브러리 PHPDOC 그리고 독사 일종의 코드 분석을 수행하십시오. 예를 들어 Doxygen은 멋진 상속 그래프를 렌더링하도록 구성 할 수 있습니다. GraphViz.

또 다른 옵션입니다 xhprof, Xdebug와 유사하지만 가벼워 제작 서버에 적합합니다. 이 도구에는 PHP 기반 인터페이스가 포함되어 있습니다.

다른 팁

온라인 PHP 린트

phplint

단위화 된 변수 확인. 링크 1과 2는 이미 이것을 잘하는 것 같습니다.

그래도 집중적으로 사용했다고 말할 수는 없습니다. :)

완전성을 위해 - 또한 확인하십시오 phpcallgraph.

PHP Mess Detector 굉장하고 빠릅니다.

$ PHP -L과 다른 도구를 사용해 보았습니다. 그러나 내 경험에서 가장 좋은 것은 (물론 YMMV)입니다. PFFF 도구 세트의 Scheck. Quora의 PFFF에 대해 들었습니다.http://www.quora.com/is-there-a-good-php-lint-centatic-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.

보다 시맨틱 디자인의 클로네드, 복사/붙여 넣기/편집 코드를 찾는 "클론 감지"도구. 공백, 댓글 및 가변적 인 렌즈 기능에도 불구하고 정확하고 가까운 미스 코드 조각을 찾을 수 있습니다. PHP에 대한 샘플 탐지 보고서는 Wesite에서 찾을 수 있습니다. (저는 저자입니다).

NetBeans IDE는 구문 오류, 미사일 변수 등을 확인합니다. 자동화되지는 않지만 중소형 프로젝트에서는 잘 작동합니다.

새로운 도구가 호출되었습니다 PHP 용 Nwire. Eclipse PDT 및 Zend Studio 7.X 용 코드 탐색 플러그인입니다. PHP의 실시간 코드 분석을 활성화하고 다음 도구를 제공합니다.

  • 코드 시각화 - 구성 요소 및 연결의 대화식 그래픽 표현.
  • 코드 내비게이션 - 고유 한 내비게이션보기는 코드를 작성하거나 읽는 동안 모든 연결을 보여주고 귀하와 함께 작동합니다.
  • 빠른 검색 - 메소드, 필드, 파일 등을 입력 할 때 검색합니다.

PHP PMD (Project Mess Detector) 및 PHP CPD (복사 페이스트 감지기) PHPUnit의 이전 부분으로

거기 있습니다 RIP- PHP 스크립트의 취약점을위한 정적 소스 코드 분석기. 이용 가능한 찢어짐 소스 Sourceforge.

RIPS 사이트에서 :

RIPS는 정적 코드 분석을 사용하여 PHP 응용 프로그램의 취약점을 찾기 위해 PHP로 작성된 도구입니다. 모든 소스 코드 파일을 토큰 화하고 구문 분석함으로써 Rips는 PHP 소스 코드를 프로그램 모델로 변환하고 프로그램 흐름 중에 UserInput (악성 사용자의 영향)에 의해 오염 될 수있는 민감한 싱크 (잠재적으로 취약한 기능)를 감지 할 수 있습니다. 발견 된 취약점의 구조화 된 출력 외에도 추가 수동 분석을위한 통합 코드 감사 프레임 워크도 제공합니다.

정적 코드 분석을위한 새로운 도구가 있습니다. PHP 분석기.

여러 유형의 정적 분석 중에도 기본 자동 고정 기능도 제공합니다. 선적 서류 비치.

업데이트 : PHP-Analyzer는 이제 더 이상 사용되지 않은 프로젝트이지만 여전히 레거시 브랜치에서 액세스 할 수 있습니다.

Facebook의 힙합으로 컴파일을 시도 할 수 있습니다.

전체 프로젝트에 대한 정적 분석을 수행하며 찾고있는 것이 될 수 있습니다.

https://github.com/facebook/hiphop-php

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top