Как использовать в комплекте? (Inclued_get_data ()) - PullRequest
1 голос
/ 07 апреля 2011

Мой первый вопрос такой. Я подумал, что включенный инструмент будет полезен для генерации файла, который содержит информацию о том, как 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);
}
?>

Но что это должно делать? Насколько я понимаю, «includeed_get_data ()» просто собирается получить информацию о том, какие файлы включены в этот файл - нет, - затем сериализует содержащую их структуру данных и записывает ее в «/tmp/wp.ser». Что мне здесь не хватает?

Опять же, если вы включите расширение, например this в php.ini:

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

расширение include включено по запросу сайта и регистрирует все выполненные включения - верно?

Во всяком случае, похоже, что ни один из этих двух вариантов не поможет мне узнать обо всех включениях целого проекта. Правильно? И если это правильно, то знаете ли вы путь к этому без необходимости написания парсера?

1 Ответ

1 голос
/ 07 апреля 2011

Мое понимание включенного (после его использования несколько раз) заключается в том, что вам нужно будет запустить его в реальном коде, а не просто в синтаксическом анализе.

Это требуется по двум причинам:

  • вот как это работает (он подключается к этим функциям в ядре Zend для их мониторинга)
  • это способ разрешения условных включений (информация, которую он предоставляет, верна для прогона, на котором он был выполнен). Без этого он не сможет понять файлы, загруженные автозагрузчиком, или какую-либо условную обработку (например, загрузку контроллера в средней структуре).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...