как создать phpdoc Tutorial/Расширенные страницы для дополнения прокомментированного кода

Я делаю все возможное, чтобы заставить phpdocumentor использовать формат учебника DocBook для дополнения создаваемой им документации:

  1. Я использую Эклипс
  2. Я установил phpDocumentor через PEAR на машине OSX
  3. Я могу запускать и автоматически генерировать код из моих php-классов
  4. Учебники не форматируются - не могу найти решение

Я попытался переместить файл примера .pkg по всей файловой структуре в подпапках, используя имя, аналогичное пакету, на который ссылается код. .pkg и другие файлы DocBook в отношении кода, который они документируют, и того, как они запускают phpdoc для его форматирования. Я был бы признателен, я использую это в данный момент:

phpdoc -o HTML:Smarty:HandS
-d "/path/to/code/classes/", "/path/to/code/docs/tutorials/"
-t /path/to/output

person Ket Majmudar    schedule 06.08.2009    source источник


Ответы (4)


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

Учебник и мои примеры должны работать, но похоже, есть небольшая ошибка в том, как phpdoc интерпретирует значения переключателей. Вот что я использовал:

phpdoc -o HTML:Smarty:HandS
-d "/path/to/code/classes/", "/path/to/code/docs/tutorials/"
-t /path/to/output

Однако, если вы используете следующее:

    phpdoc -o HTML:Smarty:HandS 
-d /path/to/code/classes/, /path/to/code/docs/tutorials/
-t /path/to/output

Он будет правильно форматировать ваши учебные пособия и расширяющие документы, все, что я сделал, это отбросил двойные кавычки вокруг путей к каталогам. Одинарные кавычки вообще не работают - поскольку phpdoc сам заключает каталоги в двойные кавычки, если нет пробелов ... это похоже на ошибку с phpdoc, и такое же поведение произошло с веб-интерфейсом, так что это внутренний проблема. моя первоначальная попытка должна была сработать, но не сработала. Я свяжусь с разработчиками и доведу ее до их сведения.

Проблема решена.

person Ket Majmudar    schedule 10.08.2009

Вы читали это?

Он предлагает следующую схему пути: tutorials/package/package.pkg, где package — это имя вашего пакета, вы сделали это таким образом?

person André Hoffmann    schedule 06.08.2009
comment
Да, я много раз читал эту страницу в документации. Он рекомендует использовать ‹i›tutorials/package/package.pkg‹/i› — и я попробовал эту схему примерно в 4-5 местах — ни одно из них не имело никакого значения. Я также пытался использовать только индивидуальное имя пакета, так как не смог заставить его работать. изначально я настроил его как: /path/to/docs/tutorials/package/package.pkg затем: /path/to/code/tutorials/package/package.pkg затем: /path/to/tutorials/package/package .pkg затем: /path/to/docs/tutorials/package.pkg Я думаю, что могло быть еще 2-3 попытки сравнения. - person Ket Majmudar; 07.08.2009
comment
Ну это странно. Вы проверили права доступа к файлу? - person André Hoffmann; 07.08.2009
comment
Знаете ли вы, какие разрешения должны быть у файла - я не проверял его и полагаю, что он должен быть доступен только для чтения пользователем - я мог бы попробовать запустить команду от имени пользователя root, я проверю. - person Ket Majmudar; 07.08.2009
comment
Я использую location: trunk/tutorials/package/package.pkg и включаю -d trunk/tutorials/ в командную строку. В результате я получаю: Этап разбора учебника/расширенной документации - выполнено - так что ничего не происходит. Где бы я ожидал увидеть содержимое docbook в выходной папке, если бы оно работало? - person Ket Majmudar; 07.08.2009
comment
Интересно, может ли это иметь какое-то отношение к файлу .ini - не могу понять, почему .pkg/.proc не распознается при сборке документации... - person Ket Majmudar; 10.08.2009

У меня возникла та же проблема с использованием .ini для конфигурации, но со мной проблема заключалась в том, что я поставил пробел между запятой и каталогом, в результате чего каталог не был «связан» с параметром -d.

Не работает:

directory = {$lib}/Question,{$lib}/Error, {$path}/docs/tutorials

Работающий:

directory = {$lib}/Question,{$lib}/Error,{$path}/docs/tutorials

Надеюсь, это решит проблему для кого-то другого!

person Rijk    schedule 16.06.2011

Да, ваше использование двойных кавычек, вероятно, отбросило внутренний анализ аргументов среды выполнения phpDocumentor, в результате чего -d /path/to/code/classes стало одной парой аргумент/значение без включения /path/to/code/docs/tutorials в качестве дополнительного значения каталога.

Как правило, я видел две другие проблемы, связанные с тем, что учебники не создавались. Во-первых, каталог tutorial — это не то, что ожидает phpDocumentor. Во-вторых, в выполнение не включаются никакие фактические файлы кода PHP. Я помню, как добавлял в руководство формулировку специально для этих двух сценариев. .

person ashnazg    schedule 22.11.2009