web-dev-qa-db-ja.com

PHPファイル用の静的コードアナライザー(Lintのような)はありますか?

PHPファイル用の静的コードアナライザーはありますか?バイナリ自体は構文エラーをチェックできますが、未使用の変数代入、最初に初期化されずに代入される配列、そしておそらくコードスタイルの警告など、もっとうまくいくものを探しています。オープンソースプログラムが好まれるでしょうが、それが強く推奨されれば私達は会社に何かの代金を払うように納得させるかもしれません。

453
eswald

コマンドラインからlint-modeでphpを実行し、実行せずに構文を検証します。

php -l FILENAME

高レベルのスタティックアナライザは次のとおりです。

低レベルのアナライザー

実行時アナライザーは、PHPの動的性質により、いくつかの点でより有用です。

ドキュメントライブラリ phpdocdoxygen は一種のコード分析を行います。たとえば、Doxygenは、 graphviz でNice継承グラフをレンダリングするように設定できます。

もう1つのオプションは xhprof です。これはxdebugに似ていますが、より軽いため、本番サーバーに適しています。このツールにはPHPベースのインターフェースが含まれています。

346
troelskn

オンラインPHP lint

PHPLint

ユニット化変数チェック 。ただし、リンク1と2はすでにこれで問題ないようです。

私はこれらのどれかを集中的に使ったことがあるとは言えませんが、:)

38
Martijn Laarman

完全を期すために、 phpCallGraph もチェックしてください。

27
Till

PHP Mess Detector は最高で速いです。

23
aredridel

私は$ php -lを使って他のツールを試してみました。しかし私の経験で最も優れたもの(もちろんYMMV)は pfffツールセットの概要 です。私はQuoraのpfffについて聞きました( http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool

コンパイルしてインストールすることができます。 Niceパッケージはありません(私のmint Debianでは、最初に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.
17
rjha94

コピー/貼り付け/編集されたコードを見つける「クローン検出」ツール Semantic Designs 'CloneDR を参照してください。空白、コメント、さらには可変的な名前の変更にもかかわらず、正確でニアミスのあるコードの断片が見つかります。 PHPのサンプル検出レポートはウェブサイトにあります。 (私は作者です)。

14
Ira Baxter

NetBeans IDEは構文エラー、未使用の変数などをチェックします。自動化されているわけではありませんが、小規模または中規模のプロジェクトではうまく機能します。

7
slikts

nWire for PHP という新しいツールがあります。これはEclipse PDTとZend Studio 7.x用のコード探査プラグインです。 PHPのリアルタイムコード分析を可能にし、次のツールを提供します。

  • コードの視覚化 - コンポーネントと関連付けの対話型グラフィカル表現。
  • コードナビゲーション - ユニークなナビゲーションビューはすべての関連付けを表示し、あなたがコードを書いたり読んだりする間あなたと働きます。
  • クイック検索 - メソッド、フィールド、ファイルなどを入力しながら検索します。
6
zvikico

PHP PMD(プロジェクト混乱検出機能)とPHP CPD(コピー貼り付け検出機能)、PHPUnitの以前の部分

5
erenon

RIPS - PHPスクリプトの脆弱性のための静的なソースコードアナライザー があります。 RIPSのソースは SourceForge にあります。

RIPSサイトから:

RIPSは、静的コード分析を使用してPHPアプリケーションの脆弱性を見つけるためにPHPで書かれたツールです。すべてのソースコードファイルをトークン化して解析することによって、RIPSはPHPソースコードをプログラムモデルに変換し、ユーザー入力によって悪意を持った(悪意のあるユーザーの影響を受ける)機密のシンク(潜在的に脆弱な関数)を検出できます。プログラムの流れ見つかった脆弱性の構造化された出力のほかに、RIPSはさらに手動の分析のための統合コード監査フレームワークを提供します。

4
SteAp

静的コード分析のための、まったく新しい--- PHP Analyzer というツールがあります。

多くの種類の静的解析の中で、基本的な自動修正機能も提供します。 documentation を参照してください。

更新:PHPアナライザは現在非推奨のプロジェクトですが、あなたはまだレガシーブランチでそれにアクセスすることができます

3

あなたはFacebookのヒップホップでコンパイルしてみたいと思うかもしれません。

これはプロジェクト全体の静的分析を行い、あなたが探しているものかもしれません。

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

2
Martin Konecny