Forked from
ISPConfig / ISPConfig 3
4342 commits behind the upstream repository.
-
Marius Burkard authoredMarius Burkard authored
After you've reviewed these contribution guidelines, you'll be all set to
contribute to this project.
CONTRIBUTING.md 3.71 KiB
Some guidelines for web development with php.
- Unix Line Breaks Only, NO windows breaks please.
- Tabs to indent lines, NO spaces
- no accidental _<?php space before, within or after a file
- every PHP file starts and end with no spaces before or after
- error_reporting(E_ALL|E_STRICT), yep PHP 5
- Magic quotes is gone, get used to it now. config = magic_quotes_gpc() Everything must be quoted
- Don't use ereg, split and other old function -> gone in PHP 5.4
- Don't use features that are not supported in PHP 5.3, for compatibility with LTS OS releases, ISPConfig must support PHP 5.3+
- Don't use shorttags. A Shorttag is <? and that is confusing with <?xml -> always usw <?php
- Don't use namespaces
- Column names in database tables and database table names are in lowercase
- Classes for the interface are located in interface/lib/classes/ and loaded with $app->uses() or $app->load() functions.
- Classes for the server are located in server/lib/classes/ and loaded with $app->uses() or $app->load() functions.
- please mark any section that need review or work on with /* TODO: short description */
- Make function / var names on the following way, first word lower, next word(s) first letter upper like. getFirstResult();
- always a space but NO newline before opening braces, e. g.
class abc {
public function cde() {
if($a == $b) {
return false;
}
}
}
- no spaces after function/method or control names, e. g.
function abc($x, $y) {
if($condition == true) {
$x = 2;
}
}
and NOT
function abc ($x, $y) {
if ( $condition == true ) {
}
}
Commenting style
The comments break down into the following types
// is uses for removing lines and debug dev etc
/*
is used to comment out blocks
*/
/** is used to create documentaion
* thats over
* lines
*/
If you need to block out a section then use
/*
function redundant_code(){
something here
}
*/
To block out single lines use // and all // are assumed to be redundant test code and NOT comments
// print_r($foo);
Do not use the phpdoc on every function, eg
/**
* Login a user
* @param string user username
* @param string password of user
*/
function login($user, $pass){
}
as this function is self-explaining, the following clean code will suffice
function login($user, $pass){
}