Warning: this post is old and might not reflect the current state of the art
Documentation is key to any successful project. Here’s a quick introduction to what you should document, and how.
Classes
Start every class with
/**
* Class description
*
* @author Your organization or personal name
* @license MIT (or other licence)
*/
Properties
Document every property with
/**
* Property brief description
*
* @var type
*/
Methods
Document every method with
/**
* Method brief description
*
* Method longer description and help
*/
If you method accepts parameters, add them
* @param type $param1 The param1 description
* @param type $param2 The param2 description
If your method returns something, describe the return value
* @return $this
If your method throws an exception, describe the exception
* @throws \Exception
Code
Code inside methods needs to be documented if needed.
Dot not document what the code is doing, document what the code should do.