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