各ファイルの最初と最後でユーザー定義関数を自動的に呼び出したいのですが。これには、要求されているスクリプトと、そのスクリプト内の各インクルードが含まれます。
これの目的は、各ファイルの実行にかかる時間をログに記録するデバッグツールを作成することです。各ファイルの開始時と終了時のマイクロタイムは、スクリプト実行の終了時に結果を報告するために保存されます。
[編集]私はxhprofとxdebugを見て時間を過ごしました
Xdebugは実行時にオンとオフを切り替えることができないため、機能しません(現在のデバッグシステムでは、URLで属性を渡すことができます。これにより、デバッグがセッション変数としてオン/オフになり、最終的にページの下部にプロファイリングデータが表示されます。ロード後-これは非常に便利です)
Xhprofの方が近いですが、各関数呼び出しを分割したり、プロファイリング要素に添付する追加のデバッグ情報を渡したりすることはできません。たとえば、すべてのクエリに使用するmysqlクエリのユーザー定義関数があります-実際のクエリをプロファイル要素に渡して、ページ内の重いクエリと軽いクエリを識別できるようにします(クエリをログに記録できることはわかっています)また、この要件からどのように利益を得ることができるかを示したかっただけです)。もう1つの例は、着信、発信関数データ、および追跡したいその他のデバッグ情報をプロファイル要素に添付することです。
現在、共通の関数にデータを送信するすべての関数にコード行を配置し、グローバル変数に保持して、スクリプト出力に続いてデバッグデータとして吐き出すことにより、開始時間、終了時間、追加のデバッグ情報を手動で追跡しています。これをスクリプト、テンプレートなどに拡張します。すべての関数、スクリプト、テンプレートにデータを手動で入力することは、避けたいと思っています。各関数に固有のデータの一部に対して実行する必要があると思いますが、繰り返しのもの(開始時間、終了時間)をすべての悪臭を放つクエリに入力する必要はありません。