From 01c6f9032792898c22b718f100ec88e4d8155ecf Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Wed, 02 Mar 2016 05:19:14 -0500 Subject: [PATCH] - added line to guidelines --- CODING_NOTES.php.txt | 128 +++++++++++++++++++++++++----------------- 1 files changed, 75 insertions(+), 53 deletions(-) diff --git a/CODING_NOTES.php.txt b/CODING_NOTES.php.txt index 5b762d6..040ce49 100644 --- a/CODING_NOTES.php.txt +++ b/CODING_NOTES.php.txt @@ -1,41 +1,59 @@ Some guidelines for web development with php. ----------------------------------------------------- * Unix Line Breaks Only, NO windows breaks please. -* Tabs set at 4 spaces either as tabs or spaces. +* 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 php5 -* Magic quotes is gone in php6, get used to it now. config = magic_quotes_gpc() Everything must be quoted - -please mark any section that need review or work on with -// TODO -* Add documentation about access levels (public, private, protected). +* error_reporting(E_ALL|E_STRICT), yep php5 +* 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 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(); - -Pear coding guiidelines +* 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 //***************************************************************************** -phpdoc is used for creating and autogenerating the documentation, this means that -some of the comments can be formatted to be included in documentation. -ie the source files are scanned then processed and html docs are created. The comments break down into the following types // is uses for removing lines and debug dev etc -//** and //* are used as "sub comments" /* - is used to comment out blocks + is used to comment out blocks */ + /** is used to create documentaion -* thats over -* lines -*/ + * thats over + * lines + */ If you need to block out a section then use /* function redundant_code(){ - something here + something here } */ @@ -43,54 +61,58 @@ // print_r($foo); -For incline comment use //** and //* eg - -//** Decide what do do -switch($decide){ - //* blow it up - case 'baloon': - $foo->gas(+1); - // test_pressure(); << inline comment - break; - - //* Do default action - default: - do_land(); - get_gps(); - //* following grant greaceful exit - //basket_exit_crash(); - basket_exit(); - -} - Do not use the phpdoc on every function, eg /** -* Login an user +* Login a user * @param string user username * @param string password of user */ >> function login($user, $pass){ -....... + } << -as this function explains its self, the followinf clean code will suffice +as this function is self-explaining, the following clean code will suffice >> function login($user, $pass){ -....... -} - -If you do need to explain a function then put un the summary syntax eg - -/** Pass an array of values where third param is bar -* $foo['bar'] = 1; // allow an user -* $foo['bar'] = 2; // destroy user -* $foo['bar'] = -1; // recreate -*/ -public function do_something($x, $y, $foo){ -... do something interesting + } +//***************************************************************************** +// 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