property levels: - page - class - method - property - function - variable - define defined property types: - 'bool', 'int', 'float', 'string', 'mixed', 'object', 'resource', 'array' additional PHP property types / aliases: - 'res' (alias of 'resource') - 'boolean' (alias of 'bool') - 'integer' (alias of 'int') - 'double' (alias of 'float) - 'number' (alternative to 'int', 'float' or 'double') - 'callback' (e.g. array($object|$class, $method) or 'function-name') defined tags: @access {private|public} : used on classes to make them private/public in documentation @abstract : PHP4 equivalent of the abstract keyword for classes @author {name} <{email}> : indicates who the author of a class is @category : used at "page" level (e.g. file) - organizes packages into categories @copyright {statement} : associates a copyright statement with any taggable element @deprecated {statement} : defines a short statement explaining why a document was deprecated (works everywhere except at page-level) @example {path} : defines a path to an example script (relative paths are allowed) @final : PHP4 equivalent of the final keyword for classes @filesource : similar to @example, but uses the path of the current file - used at page-level @global {type} {$name} : defines a global variable @global {type} {description} : defines the use of a global variable @ignore : suppresses documentation of the element it's applied to @internal {text} : declares internal documentation (excluded from public version of documentation) @license {url} {title} : declares a link to a license agreement @link {url} {text} : any url (including http, mailto, ftp, etc.) and optional description @method {type} {description} : defines a magic/virtual method @name {$varname} : used in conjunction with @global to "rename" a global variable @package {name} : associates a file or class with a package-name @param {type} {$name} {description} : describes a function-parameter's type and description @param {type1|type2} {$name} {description} : defines a function accepting multiple types of arguments @property {type} {$name} {description} : defines a magic/virtual property's type, name and description @property-read {type} {$name} {description} : same for read-only properties @property-write {type} {$name} {description} : same for write-only properties @return {type} {description} : defines the type and description of a function or method's return-value @return {type1|type2} {description} : for mixed return types @see {element} : adds internal documentation links, e.g. "path/file.php", "class::methodname()", "class::$varname", etc. @since {description} : adds historical version information - typically includes a version number @static : marks a method or property as static - PHP4 equivalent to the static keyword in PHP5 @staticvar {type} {$name} : documents the use of a static variable in a method or function @subpackage {name} : used together with @package to define a sub-package name @todo {text} : defines a todo-list item for the programmer @tutorial package/subpackage/tutorialname.ext#section.subsection description : defines a link to a tutorial @uses {element} {description} : similar to @see, but adds a reverse @usedby tag to the destination element @var {type} {description} : used on properties to declare the type and description important tags for run-time reflection: @method {type} {func(type arg, type arg, ...)} {description} : defines a magic/virtual method @param {type} {$name} {description} : defines a method or function parameter's type @param {type1|type2} {$name} {description} : defines a method or function parameter's type as mixed @property {type} {$name} {description} : defines a magic/virtual property and it's type @property-read {type} {$name} {description} : defines a magic/virtual property, it's type and visibility @property-write {type} {$name} {description} : defines a magic/virtual property, it's type and visibility @return {type} {description} : defines the return-type of a function or method @return {type1|type2} {description} : defines the return-type of a function or method as mixed @var {type} {description} : defines property types other potentially useful tags for run-time reflection: @author : for admin/about screens @category : for admin/about screens @copyright : for admin/about screens @license : for admin/about screens @package : for admin/about screens @subpackage : for admin/about screens @uses : possible used in autoloaders, etc. useless tags: @access : outdated @abstract : outdated @deprecated : not relevant at run-time @example : not relevant at run-time @final : outdated @filesource : not relevant at run-time @global : not relevant at run-time @ignore : documentation only @internal : documentation only @link : documentation only @name : documentation only @see : documentation only @since : documentation only @static : outdated @staticvar : documentation only @todo : documentation only @tutorial : documentation only tags that must be inherited by subclasses: @author @version @copyright @package @subpackage (short description) (long description)