From 4569cae57f127afd093794310ccd290d2d9fdf36 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Wed, 20 Apr 2016 10:58:46 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- CONTRIBUTING.md | 122 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 122 insertions(+), 0 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f6049b9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,122 @@ +# 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 <?php ?> 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 + +## Interface settings + +The recommended place to store global interface settings is the ini style global config system +(see system.ini.master file in install/tpl/ to set defaults). The settings file +gets stored inside the ispconfig database. Settings can be accessed with the function: + +``` +$app->uses('ini_parser,getconf'); +$interface_settings = $app->getconf->get_global_config('modulename'); +``` + +where modulename corresponds to the config section in the system.ini.master file. +To make the settings editable under System > interface config, add the new configuration +fields to the file interface/web/admin/form/system_config.tform.php and the corresponding +tempalte file in the templates subfolder of the admin module. + +## Server settings + +Server settings are stored in the ini style server config system (see server.ini.master template file) +The settings file gets stored inside the ispconfig database in the server table. Settings can be +accessed with the function $app->getconf->get_server_config(....) + +Example to access the web configuration: + +``` +$app->uses('ini_parser,getconf'); +$web_config = $app->getconf->get_server_config($server_id,'web'); +``` + +# Learn about the form validators +There are form validators in interface/lib/classes/tform.inc.php to make validating forms easier. +Read about: REGEX,UNIQUE,NOTEMPTY,ISEMAIL,ISINT,ISPOSITIVE,ISIPV4,CUSTOM -- Gitblit v1.9.1