Создание документации на основе PhpDocumentor или немного про комментирование кода
	
	
	                
  
  
  
  
		PhpDocumentor автоматически генерирует из исходного кода документацию. Поэтому скрипт покажет лучший вариант только при правильном построении комментариев, именно это мы и разберем в первую очередь.
Описание идёт таким образом:
Сразу пример, который далее мы немного разберём.
file1.php
file2.php
Разбирать местоположение комментариев мы не будем, рассмотрим саму структуру.
@package Название
Логически объединяет файлы, классы, методы и тд. Долно быть сделано с умом или вообще не сделано. В PhpDocumentor возможно потом просматривать подобно категориям на сайте
@subpackage Название
Аналогично @package, но действует как подгруппа.
@access [private | protected | public]
Доступ к элементу
@author Текст
Автор элемента
@version Текст
Версия
@copyright Текст
Копирайты. Думаю всё ясно.
@category Название
Используется для организации групп. Полезно если портируете в XML формат, иначе смысла нет.
@example Сылка|Путь
Ссылка или путь на пример работы
@global тип $переменная
Наверное самый интересный тег. Дело в том что PhpDocumentor не анализирует глобальные переменные, этим тегом мы их задаём вручную. В примере можно увидеть как они задаются, и используются( функция func )
@ignore
Игнорирование элемента. Иногда удобно.
@license Url
Ссылка на лицензию
@link URL Описание ссылка
Формирование ссылки
@var Тип Описание
Используется только для переменных класса
@name $Имя
Используется в связки с @global. Для идентификации.
@param Тип $переменная Описание
Параметр, как объяснить не знаю, смотрите пример. Тип может быть любой: тип PHP, имя класса, или mixed
@return Тип
Тип возвращаемой ф-цией. Если ничего не возвращает прописывается void
@see file.ext|elementname|class::methodname()|class::$variablename|functionname()|functionname
Формирует ссылку на объект который указан
@staticvar Тип или mixed
Иногда в функциях мы задаём статические переменные. Этот тег служит для их описания
@todo Текст
Используется для описание идей которые ещё небыли воплощены в реальность.
@uses file.ext|elementname|class::methodname()|class::$variablename|functionname()|functionname
Аналогичен @see. Или я просто не увидел различия…
Так же хотел отметить что в описаниях возможно использовать теги example, tutorial, link. Задаются они так: {@тег параметр}
Вот и всё… С комментариями разобрались, можно приступать к создании документации.
Переходим сюда и качаем PhpDocumentor.
Распаковываем.
Открываем phpdoc.bat:
Находим:
SET phpCli=
Путь заменяем на местоположение файла php.exe
Не знаю как будет у Вас, но у меня половина css файлов имела формат cs, а png — pn, из-за этого в корне phpDocumentor создаём файл rename.bat, в который вписываем:
Идём в папку user, в которой создаём файл myconf.ini, в нём будет наша конфигурация к phpDocumentor:
Возвращаемся опять в корень и запускаем phpdoc.bat. После этого в исходящей директории вы увидите несколько вариантов документаций. Выбираем ту которая больше Вам по душе, и указываем только её в параметре output нашей конфигурации.
Оформить шаблон вы можете в папке phpDocumentor/Converters/Формат/Тип/templates/class.tpl, путь не точный, и зависит от выбранного формата и типа.
Если вы собираетесь использовать русский язык — читаем фикс
          
 
				
	  
Описание функций, методов, файлов и переменных
Описание идёт таким образом:
/**
* Краткое описание
* 
* Подробное описание 
* которое возможно в несколько строк
* 
* @тег значение
*/Сразу пример, который далее мы немного разберём.
file1.php
<?php
/**
 * Файл примера правильного документирования
 * 
 * Здесь я постараюсь использовать
 * максимально много тегов
 * @author Lion__ <moderation@mail.ua>
 * @version 1.0
 * @package files
 */
 
/**
 * Подключаем файл
 */
include_once 'file2.php';
/**
 * Просто класс
 * @package files
 * @subpackage classes
 */
class Test2 extends Test {
 
 /**
 * Получение значения с {@link $data}
 * @uses Test::data Переменная, с неё мы берём данные
 * @return void
 */
 function getdata()
 {
 $this->data = $data;
 }
}
/**
 * Тестовая переменная
 *
 * Дело в том что обычную переменную нельзя описать
 * @global Test $GLOBALS['a']
 * @name $a
 */ 
$GLOBALS['a'] = new Test;
/**
 * Обычная функция
 * @global Test показываем что мы используем глобальную переменную $a
 * @staticvar string $var Эту переменную мы будем возвращать
 * @param string $param1 Первый параметр функции
 * @param string $param2 Второй параметр
 * @return string
 */
function func($param1, $param2 = 'value')
{
 static $var = 7;
 global $a;
 return $var;
}
/**
 * Константа
 */
define('testing', 6);
?>file2.php
<?php
/**
 * Второй файл примера правильного документирования
 * 
 * @author Lion__ <moderation@mail.ua>
 * @version 1.0
 * @package files
 */
 
 /**
 * Просто класс
 * @package files
 * @subpackage classes
 */
class Test {
 /**
 * Переменная хранящая значение типа integer
 * @link _ttp://www.example.com Подробное описание. Вместо _ должно быть h
 * @see setdata
 * @access private
 * @var integer
 */
 var $data;
 
 /**
 * Установка значения
 * @param integer $data Значение для установки в {@link $data}
 * @uses Test::$data Для размещения данных
 * @return void
 */
 function setdata($data)
 {
 $this->data = $data;
 }
}Описание примера
Разбирать местоположение комментариев мы не будем, рассмотрим саму структуру.
- Краткое описание
- Полное описание. Может использоваться по желанию
- Теги
@package Название
Логически объединяет файлы, классы, методы и тд. Долно быть сделано с умом или вообще не сделано. В PhpDocumentor возможно потом просматривать подобно категориям на сайте
@subpackage Название
Аналогично @package, но действует как подгруппа.
@access [private | protected | public]
Доступ к элементу
@author Текст
Автор элемента
@version Текст
Версия
@copyright Текст
Копирайты. Думаю всё ясно.
@category Название
Используется для организации групп. Полезно если портируете в XML формат, иначе смысла нет.
@example Сылка|Путь
Ссылка или путь на пример работы
@global тип $переменная
Наверное самый интересный тег. Дело в том что PhpDocumentor не анализирует глобальные переменные, этим тегом мы их задаём вручную. В примере можно увидеть как они задаются, и используются( функция func )
@ignore
Игнорирование элемента. Иногда удобно.
@license Url
Ссылка на лицензию
@link URL Описание ссылка
Формирование ссылки
@var Тип Описание
Используется только для переменных класса
@name $Имя
Используется в связки с @global. Для идентификации.
@param Тип $переменная Описание
Параметр, как объяснить не знаю, смотрите пример. Тип может быть любой: тип PHP, имя класса, или mixed
@return Тип
Тип возвращаемой ф-цией. Если ничего не возвращает прописывается void
@see file.ext|elementname|class::methodname()|class::$variablename|functionname()|functionname
Формирует ссылку на объект который указан
@staticvar Тип или mixed
Иногда в функциях мы задаём статические переменные. Этот тег служит для их описания
@todo Текст
Используется для описание идей которые ещё небыли воплощены в реальность.
@uses file.ext|elementname|class::methodname()|class::$variablename|functionname()|functionname
Аналогичен @see. Или я просто не увидел различия…
Так же хотел отметить что в описаниях возможно использовать теги example, tutorial, link. Задаются они так: {@тег параметр}
Вот и всё… С комментариями разобрались, можно приступать к создании документации.
Создание документации
Переходим сюда и качаем PhpDocumentor.
Распаковываем.
Открываем phpdoc.bat:
Находим:
SET phpCli=
Путь заменяем на местоположение файла php.exe
Не знаю как будет у Вас, но у меня половина css файлов имела формат cs, а png — pn, из-за этого в корне phpDocumentor создаём файл rename.bat, в который вписываем:
@Echo Off
for /f "tokens=1,2" %%a in ('dir /s /b *.cs') do ren %%a %%~nxas
for /f "tokens=1,2" %%a in ('dir /s /b *.pn') do ren %%a %%~nxag
for /f "tokens=1,2" %%a in ('dir /s /b *.tp') do ren %%a %%~nxal
@pauseИдём в папку user, в которой создаём файл myconf.ini, в нём будет наша конфигурация к phpDocumentor:
[Parse Data]
title = Название документации
hidden = false
parseprivate = on
javadocdesc = on
defaultpackagename = Главная
target = Исходящая директория
directory = Входящая директория
output=HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,HTML:frames:earthli,HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,HTML:frames:DOM/phphtmllib,HTML:Smarty:PHP
sourcecode=onВозвращаемся опять в корень и запускаем phpdoc.bat. После этого в исходящей директории вы увидите несколько вариантов документаций. Выбираем ту которая больше Вам по душе, и указываем только её в параметре output нашей конфигурации.
Оформить шаблон вы можете в папке phpDocumentor/Converters/Формат/Тип/templates/class.tpl, путь не точный, и зависит от выбранного формата и типа.
Если вы собираетесь использовать русский язык — читаем фикс
     
                 
  
		
	
 
    
    
1 комментарий