There are no really strict rules in how the code should be formatted but a few basic things should be attended to when adding code to DokuWiki.
You should indent your code by either 2 or 4 spaces to mark logical blocks. Please do not use tabs. The same number of spaces should be used through the whole file, so check how many spaces the existing code uses and use the same amount.
Opening brackets should start on the same line as the keyword, closing bracket should be aligned below the first letter of the starting keyword. E.g.:
if ($foo == "bar"){ call_bar(); }elseif($foo == "baz"){ call_baz(); }else{ call_other(); }
Lines should end with a single linefeed character (UNIX style). Please try to avoid trailing whitespace. Have a look at my vimrc file on how to spot it easily in VIM.
Each function and class should have a PHPDocumentor style comment, giving at least the function's purpose and its author. Parameter and return value descriptions are nice but only mandatory if they are not obvious. If you enhance an existing function just add another author line.
Example:
/** * Check for foo in bar * * Checks if there is a foo in bar * * @author Joe Schmoe <joe@example.com> * @param string $in your input * @returns boolean true if foo in bar * */ function is_foo($in){ ... }
These comments are used for the autogenerated API Docs.
You should omit PHP's closing tags (?>) in all files to avoid premature output. This may sound strange but is actually mentioned in the PHP manual:
Note: The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files.
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported