Как стать автором
Обновить

Комментарии 19

Анализ связей или все-таки визуализация зависимостей?
В точку. Визуализация связей?
Я бы сказал построение графа зафисимосте (ВDependency graph)
Не соглашусь.
Во-первых, зависимости обычно существуют между какими-то более или менее отдельными объектами, например, модуль хранения данных зависит от модуля базы данных, но нельзя сказать, что сердце зависит от печени. Зависимость есть обыкновенно нечто одностороннее, связь же — скорее взаимная.
Во-вторых, связи ассоциируются со связностью графа, что является признаком хорошего, связного класса, который занимается чем-то одним, но занимается хорошо.
В-третьих, построение графа здесь, конечно, происходит, но «визуализация» лучше описывает конечный результат.
Надо sequence диаграммы научить рисовать, вот это будет сила, а так не понятно куда можно это притулить…
Для этого GraphViz не очень пригоден, проще выводить готовый SVG прямо из PHP. Здесь-то фишка в автоматическом расположении всего этого.

Sequence-диаграммы рисовать будет просто, если написать какой-либо логгер и вызывать при необходимости отметить связь. Другое дело, насколько это нужно, и когда многопоточность в PHP использовать?
Изображения чем-то похожи на структуры органических молекул. А вообще GraphViz — интересная и нужная вещь.
Дайте угадаю; затевали все для класса, засекающего время работы скрипта?
image
угадали!
таймер, кстати, выводит результаты в заголовки, если указать нужный GET-параметр — я его использовал для замера времени генерации картинок
книга хорошая, советую всем, кто не читал…
Для анализа (и документирования) кода, в том числе и на PHP, можно попробовать Doxygen. Он кстати умеет использовать и GraphViz для построения схематического отображения взаимосвязей…
Не знал, спасибо.
Но своё ведь всегда хочется сделать! :-)
Да, разобраться всегда интересно. Для работы используем Doxygen, правда, проект на Java. Одно из основных достоинств — документация перевязана перекрестными ссылками, в том числе и из графических представлений класса. Кроме диаграмм классов создаются графы зависимостей, вызовов и много других вкусностей. Плюс так как проект давно развивается, он легко интегрируется в различные системы сборки.
да согласен: мне доксиген больше нравится чеп пхпдок
Очень интересно.

Можно ли анализировать не один файл, а несколько?
Можно ли результат экспортировать в graphml?
Есть ли софт который может?
Нет, но если соединить классы в один файл, скрипт подумает, что это один класс :-))))
Насчёт экспорта ничего не могу сказать
Отличная вещь. Мучался тоже раз с этим. Обязательно попробую ваше решение
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории