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.
Start every class with
/** * Class description * * @author Your organization or personal name * @license MIT (or other licence) */
Document every property with
/** * Property brief description * * @var type */
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 inside methods needs to be documented if needed.
Dot not document what the code is doing, document what the code should do.