Each plugin and theme that is developed, regardless of language, must be noted. The following examples can be copied in to the relevant position and then altered, as needed.
Syntax
DocBlock (PHP and JavaScript only)
Used to give an overview of what is contained in the file, function, method or class. Whenever possible, all files, functions, methods and classes should contain a header DocBlock, regardless of the contents – this includes files containing only classes.
/** * * */
Note: the opening of the DocBlock comment starts with two asterisks leading on from opening forward slash. All remaining lines indentation needs to be increased by one space, not a tab, to make sure all the asterisks are in a single, vertical line.
Single line comment
For simple, additional descriptions, found throughout the code.
PHP and JavaScript // Some text inserted here
HTML <!-- Some text inserted here -->
Multi-line comment
Used throughout the code where a single line extends, approximately, more than 75 characters
PHP and JavaScript /* * Some text inserted here * and some more * and some more! */
Note: In PHP and JavaScript, drop a line and add a space so the asterixs are all in a single, vertical line
HTML <!-- Some text inserted here And some more And some more! -->
Note: Tab in comments in HTML when a line is dropped.
File headers
Each file needs to have a DocBlock summarising what can be found in the file including: a summary, description, @package
, @subpackage
(if applicable) and @since
tags.
/** * Summary * * Description * * @package Plugin_name * @subpackage Plugin_name/Folders/Path/File/Is/Located/In * @since x.x.x (Version that the file was introduced in) */
Classes
Whether it is a main class or a sub class, all classes need to contain a DocBlock, describing the classes function.
Main class
/** * Summary * * Description. * * @since x.x.x */
Sub Class
/** * Summary * * Description. * * @since x.x.x * * @see Super_Class */
Functions/Methods
Above each function and method, the following annotation should be used to describe what is happening, the parameters passed in to the function and the global variables that are also used from within the applications scope.
/** * Summary * * Description. * * @since x.x.x * @access (If a method: only use if private) * * @param type $var Description. * @param array $args { * Optional. An array of arguments. * * @type type $key Description. Default 'value'. Accepts 'value', 'value'. * (aligned with Description, if wraps to a new line) * @type type $key Description. * } * @param type $var Description. * * @global type $var Description. * * @return type Description. */
Tag reference table
Tag | Usage | Description |
---|---|---|
@access | public private protected |
Indicates access control for a function/method. @access private indicates the function should not be documented. Used directly below the @since line in block. |
@global | type global $varname description |
Document global(s) used in the function/method. For boolean and integer types, use bool and int , respectively. |
@internal | information string | Typically used for adding notes for internal use only. |
@ignore | (standalone) | Used to skip parsing of the entire element. |
@link | URL | Link to additional information for the function/method. For an external script/library, links to source. Not to be used for related functions/methods; use @see instead. |
@method | returntype description |
Shows a “magic” method found inside the class. |
@param | datatype $variable description |
Function/method parameter of the format: parameter type, variable name, description, default behavior. For boolean and integer types, use bool and int , respectively. |
@return | datatype description | Document the return value of functions or methods. @return void should not be used outside of the default bundled themes. For boolean and integer types, use bool and int , respectively. |
@see | elementname | References another function/method/class the function/method relies on. Should only be used inline for “linking” hooks. |
@since | version x.x.x | Documents release version function/method was added. Use 3-digit version number – this is to aid with version searches, and for use when comparing versions in code. Exception is @since MU . |
@subpackage | subpackagename | For page-level DocBlock, specifies the Component that all functions and defines in file belong to. For class-level DocBlock, specifies the subpackage/component the class belongs to. |
@todo | information string | Documents planned changes to an element that have not been implemented. |
@type | datatype description for an argument array value | Used to denote argument array value types. See the Hooks or Parameters That Are Arrays sections for example syntax. |
@var | datatype description | Data type for a class variable and short description. Callbacks are marked callback. |