Система документации phpDocumentor

23
 Twin//Slash © 2010 Использование комментариев phpDocumentor

Transcript of Система документации phpDocumentor

Page 1: Система документации phpDocumentor

   

Twin//Slash © 2010

Использование комментариев phpDocumentor

Page 2: Система документации phpDocumentor

   

Важность документации

”Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing.”

Dick Brandon

Page 3: Система документации phpDocumentor

   

phpDocumentor

Комментарии – важная часть кода

Комментарии должны быть:

полными

точными

своевременными

Page 4: Система документации phpDocumentor

   

phpDocumentor

Он же PHPDoc

http://www.phpdoc.org/

Page 5: Система документации phpDocumentor

   

Комментарии

Комментарии PHPDoc пишутся в специально отведенных для них местах с помощью специальной разметки.

Могут быть сконвертированы в HTML, PDF или CHM файлы 

$ phpdoc ­h

Page 6: Система документации phpDocumentor

   

Комментарии

Комментарии PHPDoc всегда многострочные и выглядят следующим образом

/**

 * Комментарий

 */

Как правило, все современные IDE автоматически поддерживают и дополняют такой блок комментариев.

Page 7: Система документации phpDocumentor

   

Комментарии

HTML или wiki разметка внутри текста комментариев

/**

 * Внутри функции

 * * создаем переменную

 * * уничтожаем переменную

 */

Page 8: Система документации phpDocumentor

   

Комметария

Комментариями PHPDoc сопровождается

каждый файл

каждый класс

каждое свойство или константа класса

каждый метод класса

каждая функция

Page 9: Система документации phpDocumentor

   

Теги

@<тег> <информация тега если есть>

/**

 * @param string $name Имя пользователя

 */

Page 10: Система документации phpDocumentor

   

Основные теги

@author Автор с указанием e­mail

/**

 * @author Aliaksei Shytkin <[email protected]>

 * @author Mahatma Harash <[email protected]>

 */ 

Page 11: Система документации phpDocumentor

   

Основные теги

@version $Id$

Версия с автоматическим подставлением информации о последней ревизии файла

Page 12: Система документации phpDocumentor

   

Основные теги

@package <имя пакета>

@subpackage <имя подпакета>

Для указания структуры проекта

/**

 * @package Form

 */

Page 13: Система документации phpDocumentor

   

Основные теги

@var <тип переменной> <описание>

Для свойств классов

Тип переменной используется IDE для автокомплита

/**

 * @var sfGuardUser Владелец экземпляра класса

 */

$owner = null;

Page 14: Система документации phpDocumentor

   

Основные теги

@param <тип переменной> имя <описание>

Для функций и методов

Тип переменной используется IDE для автокомплита

/**

 * @param sfGuardUser $user Пользователь оплачивающий ордер

 * @param mixed $order Данные ордера 

 */

public function process($user, $order){}

Page 15: Система документации phpDocumentor

   

Основные теги

@return <тип переменной>

Для фукций и методов

/**

 * @return sfGuardUser 

 */

public function getOwner()

{

  return $this­>owner;

}

Page 16: Система документации phpDocumentor

   

Основные теги

@todo <указание как в будущем изменить код>

/**

 * @todo Перенести в шаблоны 

 */

public function translateTitle()

{

  return __($this­>title);

}

Page 17: Система документации phpDocumentor

   

Пример

Живой пример написания кода с комментариями

Page 18: Система документации phpDocumentor

   

Другие комментарии

Имеет смысл оставлять важные комментарии внутри блоков кода, если они необходимы.

Комментарии ставятся на строке перед комментируемым блоком кода. В данном случае все комментарии однострочные с пробелом после знака комментария

Page 19: Система документации phpDocumentor

   

Другие комментарии

// проверка на действительность 

// пользователя

if ($user­>is_active && $user­>registered_at == '01­01­2001')

{

}

Page 20: Система документации phpDocumentor

   

symfonyКомментарии

В фреймворке symfony комментарии необходимы

для каждого из подключаемого плагина в файле ProjectConfiguration.class.php

для каждой инструкции внутри файла ProjectConfiguration.class.php

для каждой связи события $this dispatcher connect→ →  в файле конфигурации приложения

Page 21: Система документации phpDocumentor

   

YAMLКомментарии

Опыт показывает необходимость комментирования YAML­файлов

к каждой важной инструкции в конфигурационных файлах проекта и приложения, к каждому из подключаемых хелперов и модулей, к каждому роутингу

к каждому полю модели в yaml файле модели и другим инструкциям внутри файла модели

Page 22: Система документации phpDocumentor

   

YAMLКомментирование

# таблица для хранения заявок

Tender:

  columns:

    # имя

    name:

      type: string(255)

   # описание

   description:

    type: clob

Page 23: Система документации phpDocumentor

   

Спасибо за внимание

Вопросы?