- Code must follow PSR-2.
- Classes must have a docblock documentation describing their purpose.
- Class methods must have a docblock documentation, in this order:
- A mandatory one-line short description.
- An optional multi-line long description.
- A mandatory
@param
annotation for each parameter:@param [type] [name] [description]
[type]
is the type of the variable, primitive or class.[name]
is the name of the parameter, including the leading$
.[description]
is a short description of the parameter. If the description spans multiple lines, all lines must be indented by the same number of spaces as the first line.- The indentation must be such as types, names and descriptions for all parameters of a single method start on the same column.
- A mandatory
@return
annotation:@return [type] [description]
[type]
is the return type, primitive or class.[description]
is an optional short description of what the method returns.- If the method does not return anything, this must be explicitly documented as
@return void
.
- One or more
@throws
annotations if the method throws any exception.
- Class properties must have a docblock documentation, in this order:
- A mandatory one-line short description.
- An optional multi-line long description.
- A mandatory
@var
annotation:@var [type]
.[type]
is the variable type, primitive or class.
- The following rules apply to any docblock documentation:
- Primitive types must be lowercase and use the following forms:
integer
, notint
.boolean
, notbool
.float
, notdouble
orreal
.
- Classes must use the Fully Qualified Class Name.
- If a variable can contain multiple types, it must document all types, separated by a
|
vertical bar. - If a variable is of type
array
, but only contains objects of a certain type, it should be documented asClassName[]
, notarray
.
- Primitive types must be lowercase and use the following forms:
- All elements of different types in a docblock must be separated by an empty docblock line (short description, long description, annotations of different types).
return
statements must be separated from the previous statement by an empty line, unless they come right after an opening bracket.- Class properties that are
null
by default must not declare a default= null;
value.
Last active
December 11, 2015 23:28
-
-
Save BenMorel/4676670 to your computer and use it in GitHub Desktop.
Coding standard draft for the Doctrine project
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@Ocramius Regarding
null
, do you mean in this sentence: Primitive types must be lowercase and use the following forms? I've only mentioned the ones that can take multiple forms. This excludesnull
, but alsoarray
, andresource
. Do you think that's confusing?Also, how can we define a logical group?