死んだファイル、変数、関数のクリーンアップ、および大規模で比較的乱雑な php プロジェクト/フレームワークのリファクタリングを容易にする監視、分析ツールはありますか?
4 に答える
Facebook の HipHop にも、役立つ非常に高速な静的コード アナライザーがあります。Etsy の Nick Galbreath がhttp://www.slideshare.net/nickgsuperstar/static-analysis-for-phpでこれについて素晴らしいプレゼンテーションを行っています。
問題がデッド コードのクリーンアップである場合は、まずデッド コードを見つけます。
テスト カバレッジ ツール (私の会社はこれらの 1 つを提供しています) を使用して、どのコードが死んでいる可能性があるかを調べることができます。単体テストを介して、またはアプリケーションを 1 日実行するだけで、多くの機能を実行します。メソッド X のカバレッジがないということは、X がおそらく死んでいることを意味します。
死んだ変数はより困難です。データ アクセス カバレッジ情報が必要です。PHP用のそのようなツールは知りません。
コード/変数が死んでいるかどうかを確実に伝える静的アナライザーを知りません。(別の回答で言及されている HipHop は、一部のメソッド、特にローカル変数に対してこれを実行できる可能性がありますが、evalによって任意の関数が呼び出されたり、任意の変数が参照されたりする可能性があるため、PHP でこれを正しく行うのは困難です) .
次に、デッド コードを削除するか、将来の進化を改善するために保持するかを決定できます。
.
Opcache が有効になっており、すべてのコードがキャッシュに収まる場合は、次のスニペットを使用して、キャッシュされていない (したがっておそらく使用されていない) PHP ファイルを見つけることができます。
$di = new RecursiveDirectoryIterator(__DIR__ . '/src');
foreach (new RecursiveIteratorIterator($di) as $filename => $file) {
if (substr($filename, -strlen('.php')) === '.php') {
if (!opcache_is_script_cached($filename)) {
echo $filename . "\n";
}
}
}
http://jenkins-ci.org/を試してみてください。乱雑な PHP などを探すことができる多くのコード分析ツール用のプラグインがあります。