3

[これはコードカバレッジの質問ですが、削除できるコードを特定する目的で本番環境で使用したいと考えています。]

どのファイルがPHPの実行の一部であるかをどういうわけか記録することは可能ですか?つまり、あるエントリポイントの実行の一部としてファイルがロードされる場合、この事実を記録する方法はありますか?つまり、ファイルがクラスローディングの一部として含まれている、必要である、またはロードされている場合、エントリポイントのphpファイル自体に加えて?(クラスローダーを自分で処理できるため、クラスローディングの部分がおそらく最も簡単です)。

背景:私はいくつかのレガシーを備えたコードベースを持っています-そしてクリーンアップの努力として、もう使用されていないファイルを削除するといいでしょう。このトリックは、どのファイルが使用されているかについての手がかりを与えてくれます。このロギングを十分に長く実行すると、手つかずのログをすべて削除できます。

「レベル2」:実際には使用されていないファイルが含まれている可能性があります。つまり、一部の関数ライブラリが含まれていますが、実行で実際に関数が使用されることはありません。これを追跡する方法は?XDebugやその他のやや煩わしい方法が唯一の選択肢ですか?

4

3 に答える 3

3

含まれているファイルを探している場合:-

get_included_files();

http://php.net/manual/en/function.get-included-files.php

ロードされたクラスのリストを追跡するには、Xdebugが最良の選択です。
またはAPD:高度なPHPデバッガー

を見てくださいapd_callstack、あなたはそこに何か驚きを見つけることができます。

于 2011-11-28T09:19:34.760 に答える
2

http://www.php.net/manual/en/function.get-included-files.php

私に関する限り、auutoloadはrequireになります

于 2011-11-28T09:20:49.867 に答える
0

debug_backtrace()出力の一部を利用できると思います。

于 2011-11-28T09:23:20.203 に答える