1

私の最初の質問はこれです。含まれているツールは、phpファイルがincludeステートメントとrequireステートメントを介してどのように接続されているかに関する情報を含むファイルを生成するのに役立ち、特にコードを解析するだけで必要な情報を収集できると思いました...インクルード情報を取得するためのコードを実行できない/したくない。私が見つけたすべての例では、プロジェクトを実行する必要があるようですが。

ここhttp://php.net/manual/en/inclued.examples-implementation.phpに次の例があります。

<?php
// File to store the inclued information
$fp = fopen('/tmp/wp.ser', 'w');
if ($fp) {
    $clue = inclued_get_data();
    if ($clue) {
        fwrite($fp, serialize($clue));
    }
    fclose($fp);
}
?>

しかし、それは何をすることになっていますか?私が理解している限り、「inclued_get_data()」は、そのファイルに含まれているファイルに関する情報を取得します(none)。次に、含まれているデータ構造をシリアル化して、「/ tmp/wp.ser」に書き込みます。ここで何が欠けていますか?

次に、php.iniで次ようにinclued-extensionを有効にすると、次のようになります。

extension=inclued.so
inclued.enabled=1
inclued.dumpdir=/tmp

inclued-extensionはサイトのリクエストで呼び出され、実行されたすべてのインクルージョンをログに記録します-そうですか?

とにかく、これらの2つのオプションのいずれも、プロジェクト全体のすべての包含について知るのに役立たないようです。右?そして、それが正しければ、パーサーを作成せずにそれを行う方法を知っていますか?

4

1 に答える 1

1

(数回使用した後の)incluedについての私の理解は、単に解析するのではなく、ライブコードで実行する必要があるということです。

これは2つの理由で必要です。

  • それがどのように機能するかです(Zendコアのこれらの関数に接続してそれらを監視します)
  • これにより、条件付きインクルードを解決できます(提供される情報は、実行された実行に当てはまります)。これがないと、オートローダーによってロードされたファイルや、あらゆる種類の条件付き処理(平均的なフレームワークでのコントローラーのロードなど)を理解できません。
于 2011-04-07T13:52:43.007 に答える