Диаграммы совместной работы PHP Doxygen

Я начал экспериментировать с doxygen для создания документации из моего PHP-кода. Я заметил, что в сгенерированном выходе есть две диаграммы - наследование и сотрудничество. Я знаю о наследовании, но коллаборативный вызвал у меня интерес после прочтения руководства:

Если для тегов COLLABORATION_GRAPH и HAVE_DOT установлено значение YES, то doxygen сгенерирует график для каждого задокументированного класса, показывающий прямые и косвенные зависимости реализации (переменные наследования, включения и ссылок на классы) класса с другими задокументированными классами.

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

Могу ли я что-то сделать, чтобы намекнуть Doxygen на то, что я хотел бы отобразить на этой диаграмме? Это просто не работает с PHP?


person Shabbyrobe    schedule 19.11.2010    source источник


Ответы (3)


Может быть, потому, что классам, для которых вы его используете, нечего показывать на диаграмме сотрудничества, ЗА ИСКЛЮЧЕНИЕМ наследования?

Вы пробовали это на составных классах? (классы, содержащие объекты-члены других классов)

В этих случаях (по крайней мере, с C ++) он генерирует сложные цветные диаграммы, представляющие различные отношения.

person bittwiddler    schedule 25.12.2010
comment
Проблема как раз в том, что я задокументировал отношения, композиция должна показывать композицию, но нет. - person Shabbyrobe; 25.12.2010
comment
Как вы думаете, это может быть ошибка в парсере PHP Doxygen? - person bittwiddler; 09.01.2011
comment
Я считаю, что этого не хватает в парсере PHP Doxygen (я тестировал с doxygen 1.7.4); Doxygen, кажется, никогда не берет документацию для каких-либо членов класса, и в результате он никогда не определяет, что какой-то член является ссылкой на другой класс. Я предполагаю, что это начинает работать, как только парсер Doxygen узнает, как собирать документацию о членах класса (особенно о типе члена, объявленном с помощью @var). - person Mikko Rantalainen; 14.12.2011

Я никогда не пытался создавать диаграммы взаимодействия с помощью doxygen, но считаю, что вам нужно документировать свой код следующим образом:

class B {}

class A {
    /**
     * @var B
     */
    private $b;
}

Если вы опустите докблок, doxygen может не распознать, что $ b относится к типу B, и, следовательно, не включит B в диаграмму сотрудничества.

person rik    schedule 07.12.2010
comment
Я уже так прокомментировал свой код, так как он очень помогает в Eclipse. К сожалению, диаграммы сотрудничества никоим образом не полезны. - person Shabbyrobe; 09.12.2010

попробуйте выполнить здесь http://www.symfony-project.org/plugins/sfDoxygenPlugin

person cuhuak    schedule 09.12.2010
comment
Я не вижу там ничего о диаграммах сотрудничества. Я тоже не использую Symfony. - person Shabbyrobe; 09.12.2010