Skip to content
Snippets Groups Projects
Forked from ISPConfig / ISPConfig 3
4342 commits behind the upstream repository.
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){
	
}

Where to store custom settings