Comments
DocBlock
Every PHP file should lead with a DocBlock. Replace the {template}
values with actual content.
/**
* {projectName}
* {projectDescription}
*
* @author {authorName} ({authorWebsite})
* @package {packageDesignation}
* @copyright Copyright {year} {copyrightHolderName}
* @license All rights reserved.
*/
Here’s an example DocBlock for GravDept:
/**
* Gravity Department
* Responsive frontend site
*
* @author Brendan Falkowski (http://gravitydept.com)
* @package gravdept
* @copyright Copyright 2014 Gravity Department
* @license All rights reserved.
*/
- Don’t put a space before the leading
*
character. - Leave two empty lines after a page DocBlock.
Single-line comments
Use single-line comments // comment
instead of multi-line comments /* comment */
. This lets you easily span multi-line comments over single-line comments.
// Single-line comments applicable to following line.
$x = ($i > 5) ? 'banana' : 'apple';
// Single-line comment applicable to group of code.
$x = ($i > 5) ? 'banana' : 'apple';
return $x;
Multi-line comments
Only use multi-line comments when the code spans multiple lines, or contains single-line comments within.
/*
if ($apple) {
return $apple;
} else {
// Bananas are better.
return $banana;
}
*/
Signing comments
Signing comments improves communication in teams and documentation. In platform code, it separates system comments from implementor comments.
Simple signing
Just a small flag to identify a change from vendor code that could easily be overlooked.
// GravDept
$i = 0;
Short descriptions
Use colon after signature. Treat entire line as a sentence.
// GravDept: reset counter.
$i = 0;
Long descriptions
Use a colon after the namespace. Write one sentence per line. Use punctuation. Lines longer than ~80 characters should be wrapped.
// GravDept:
// Initialize the application.
// This bootstraps the necessary libraries.
init();
Referencing URLs
Typically the last line in a comment block. If multiple, put each URL on its own line.
// GravDept:
// Lorem ipsum dolor sit amet.
// See: http://gravitydept.com/some/reference
$i = 0;
Tasks
Use comment [flags]
to mark code that needs future attention. These are easy to search for later.
// GravDept: [refactor]
// The reason you need to rewrite.
// GravDept: [testing]
//var_dump($data);
// GravDept: [todo]
// The thing you need to do.