Inclued. Профайлинг подключаемых файлов в PHP
января 21, 2008 by ptchinkНе все знают, но существует удобная утилита для определения подключаемых (include, require) файлов в PHP. И зовется она — Inclued . В данный момент последней версией является 0.3 ( inclued-0.3.tar.gz 7.5Кб). Inclued представляет из себя PECL-пакет, со всеми вытекающими последствиями. Что бы не дублировать информацию в интернете (а на самом деле лень писать) вот ссылка на информацию об установке PECL’овских пакетов.
Inclued версии 0.3 в процессе работы строит дерево подключений и самостоятельно сохраняет его в файл, вида inclued.XXXXX.X в dumpdir, указанный в php.ini. Пример php.ini, для использования inclued:
... inclued.enabled = On inclued.dumpdir = /tmp/ ...
Создадим несколько файлов: a.php
';
b.php
';
c.php
';
d.php
';
index.php
'; var_dump(inclued_get_data());
и посмотрим, что нам «выдаст» index.php. В моем случае (с включенным xdebug) это:
a.php d.php c.php b.php index.php
array ‘request’ array ‘_REQUEST’ = array empty ‘_COOKIE’ = array empty ‘SCRIPT_FILENAME’ = string ‘/var/www/inclued/index.php’ (length=26) ‘REQUEST_URI’ = string ‘/inclued/’ (length=9) ‘REQUEST_TIME’ = int 1200852009 ‘includes’ = array 0 = array ‘operation’ = string ‘include’ (length=7) ‘op_type’ = int 2 ‘filename’ = string ‘a.php’ (length=5) ‘opened_path’ = string ‘/var/www/inclued/a.php’ (length=22) ‘fromfile’ = string ‘/var/www/inclued/index.php’ (length=26) ‘fromline’ = int 2 1 = array ‘operation’ = string ‘include_once’ (length=12) ‘op_type’ = int 4 ‘filename’ = string ‘b.php’ (length=5) ‘opened_path’ = string ‘/var/www/inclued/b.php’ (length=22) ‘fromfile’ = string ‘/var/www/inclued/index.php’ (length=26) ‘fromline’ = int 3 2 = array ‘operation’ = string ‘require’ (length=7) ‘op_type’ = int 8 ‘filename’ = string ‘c.php’ (length=5) ‘opened_path’ = string ‘/var/www/inclued/c.php’ (length=22) ‘fromfile’ = string ‘/var/www/inclued/b.php’ (length=22) ‘fromline’ = int 2 3 = array ‘operation’ = string ‘require_once’ (length=12) ‘op_type’ = int 16 ‘filename’ = string ‘d.php’ (length=5) ‘opened_path’ = string ‘/var/www/inclued/d.php’ (length=22) ‘fromfile’ = string ‘/var/www/inclued/c.php’ (length=22) ‘fromline’ = int 2 ‘inheritance’ = array empty DOT , который потом можно визуализировать с помощью Graphviz Для имеющегося у нас набора файлов график будет выглядеть следующим образом: Иcтoчник: Inclued. Профайлинг подключаемых файлов в PHP
Posted in Новости |