Автоматическое создание документации PHP?

Для ActionScript 2 я использовал NaturalDocs. Однако у него довольно плохая поддержка PHP. Я до сих пор смотрел на доксиген и phpDocumentor, но их результат, на мой взгляд, довольно уродливый. Есть ли у кого-нибудь опыт автоматической генерации документации для PHP? Я бы предпочел использовать теги в стиле javadoc, они короткие и легко запоминаются.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
40
0
49 277
9

Ответы 9

Если уродливая проблема, я бы просто переключил таблицу стилей на другую. Если вы не хотите перезаписывать сгенерированный, вы можете использовать плагин Firefox, например Стильный.

phpDocumentor может выводить в стиле, аналогичном документации php.net (и он встроен в макеты smarty и non smarty)

Это отличный вариант, но имейте в виду, что файлы, содержащие признаки или декларацию типа возврата или аргумента php7, пропускаются текущей версией (2.9.0).

halfpastfour.am 29.09.2016 00:41

Вы можете отредактировать файл шаблона, чтобы добавить свою собственную таблицу стилей, чтобы заменить существующую.

Есть два хорошо известных и часто используемых инструмента, которые могут генерировать документацию API из docblocks:

  • phpDocumentor, который специфичен для PHP и, вероятно, является одним из наиболее часто используемых инструментов для проектов PHP.
  • и Doxygen, который больше подходит для C, но используется некоторыми людьми для PHP.


По поводу «руководящих принципов»: я бы сказал, что это зависит от ваших проектов, но, по крайней мере, я ожидал увидеть:

  • описание того, что делает метод / функция
  • параметры, с @param type name description of the parameter
  • возвращаемое значение, с @return type description of the return value
  • исключения, с @throws type description of the exception that can be thrown

Замечательно то, что недавняя IDE (например, Затмение PDT) может читать и интерпретировать эти маркеры, чтобы давать подсказки при кодировании ;-)


Кроме того, появляется все больше и больше инструментов PHP, которые используют php docblocks для других целей, кроме документации.

Например, PHPUnit позволяет вам указывать некоторые вещи, связанные с тестами, используя некоторые специальные теги - см. Аннотации.

Спасибо за очень обстоятельный ответ. В частности, это соответствует тому, что я привык писать для JavaScript (динамически типизированные переменные и параметры), поэтому, учитывая, что я не настолько ограничен, я выберу то, к чему я привык.

jeremyosborne 18.12.2009 08:58

PHPDoc, вероятно, так же хорош, как и вы, с точки зрения встроенного комментирования в стиле Javadoc. Вы также можете посмотреть PHPXRef.

PHPXRef не обновлялся с 2010 года.

Moak 22.08.2016 18:41

@Moak ответ был дан в 2009 году ...

I try so hard but I cry harder 04.12.2020 00:07

По-прежнему приятно отметить это для людей, посещающих сегодня, чтобы они знали об этом. @ItrysohardbutIcryharder

Moak 04.12.2020 22:30

Кодовая база Wordpress документируется с использованием тегов phpdoc (см. это), и в целом она довольно хороша - она ​​отображается здесь с использованием phpDocumentor.

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

Да, phpDocumentor (http://www.phpdoc.org/) - приемлемый стандартный инструмент для автодокументов PHP. Это стандарт де-факто.

При документировании кода PHP допустимо следовать общим руководящим принципам JavaDoc для кода. Однако вы столкнетесь со случаями, когда этого будет недостаточно, потому что PHP и Java - разные языки.

Например, функции PHP не имеют возвращаемого типа, и для функции неизбежно (а иногда и желательно) возвращать один тип с одним контекстом, а другой тип с другим контекстом. Руководства JavaDoc в этом не помогут, потому что это невозможно сделать на Java.

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

jeremyosborne 18.12.2009 09:00

Хотя ваш пример действителен, вообще говоря, если java что-то не позволяет, а php делает, я бы попытался сопоставить то, что рекомендует java, и не делать этого на php, хотя я мог бы ...

Sebas 07.10.2016 16:28

Ознакомьтесь с PHPDoctor http://peej.github.com/phpdoctor/, простым, но полным функционалом клона Javadoc для PHP.

ApiGen

http://apigen.org/

ApiGen поддерживает пространства имен PHP 5.3, пакеты, связь между документацией, перекрестные ссылки на стандартные классы PHP и общую документацию, создание выделенного исходного кода и экспериментальную поддержку особенностей PHP 5.4.

DocBlox

http://www.docblox-project.org/

Генератор документации API, совместимый с PHP 5.3, предназначенный для проектов любого размера и непрерывной интеграции.

способен полностью анализировать и преобразовывать Zend Framework 2

Я хотел бы упомянуть, что DocBlox - это то же самое, что и phpDocumenter в приведенном ниже ответе. Из 3, это единственный, который не перепутал пространства имен, но, возможно, я просто чего-то не понимаю и у меня поздно ночью пукнет мозг. ;)

iautomation 12.12.2015 12:02

ApiGen - нет-нет, если вы используете кое-что из php 5.6 или 7. Они собираются выпустить 4.2, поэтому я надеюсь, что они решат проблемы ... потому что мне нравится их макет.

Sebas 07.10.2016 16:35

Я никогда раньше не использовал docblox, но я пробовал apigen и phpdocumentor, apigen - единственный (который я когда-либо пробовал), который может генерировать документ без раскрытия исходного кода, и его сгенерированный документ очень прост для понимания.

vee 04.01.2017 11:00

Другие вопросы по теме