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 Новости |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.