开发者

How to use inclued? (inclued_get_data())

开发者 https://www.devze.com 2023-02-23 06:55 出处:网络
My first question is this. I thought the inclued tool would be useful to generate a file which contains information about how php-files are connected through include- and require-statements and it wou

My first question is this. I thought the inclued tool would be useful to generate a file which contains information about how php-files are connected through include- and require-statements and it would especially be able to collect the necessary information just by parsing the code ... thing is I can't/don't want to execute the code to get the include-information. Though all example I found seem to require running the project.

Here http://php.net/manual/en/inclued.examples-implementation.php you'll find following example:

<?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);
}
?>

But what is that supposed to do? As far as I understand 'inclued_get_data()' it's just going to get information about which files are included in that file - none - then serializes the containing data-structure and writes it to '/tmp/wp.ser'. What am I missing here?

Then again if you enable the inclued-extension like this 开发者_C百科in php.ini:

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

the inclued-extension is invoked on a request of a site and it logs all inclusions that have been executed - right?

Anyway, it seems like none of those two options help me finding out about all inclusions of a whole project. Right? And if that is correct, then do you know a way to that without having to write a parser?


My understanding of inclued (after using it several times) is that you will need to have it execute on live code, as opposed to just parsing.

This is required for two reasons:

  • that's how it works (it's attaching to those functions in the Zend core to monitor them)
  • that's how it's able to resolve conditional includes (the information it provides is true for the run on which it was executed). Without this it wouldn't be able to understand files loaded by an autoloader, or any sort of conditional processing (such as loading a controller in the average framework).
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号