Wiki ▸ [Developer Docs](Developer Docs) ▸ Coding Standards
-
Format your code so that we can read it, please!
-
Use tabs for formatting, NOT SPACES. Tabs create smaller files and editors allow developers to view a tab as however many spaces as they prefer. Spaces do not allow this. There is one exception (see arrays below).
-
Use ' instead of " for strings. This is a performance issue, and prevents a lot of inconsistent coding styles.
-
Use the Standard Header in the top of all your scripts
-
Comments go on the line ABOVE the code, NOT to the right of the code!
-
For each section of code put a section divider with basic explanation of the following code/functions. It should look like this:
/**
* These functions are used to pick my nose
*/
-
Do not document every bit of code in comments. PHP is an interpreted language and it will be nasty on performance.
-
Use switch statements where many elseif's are going to be used. Switch is faster and I like it better!
-
If - statements need to use the following format:
if ($var == "example")
{
echo "This is only an example";
}
else
{
echo "This is not a test. This is the real thing";
}
//Do NOT make if statements like this:
if ($var == 'example'){ echo 'An example'; }
All other styles are not to be used.
- ALL 'if' statements MUST have matching { } (brackets). Do NOT create 'if' statements like this:
if ($a == b)
dosomething();
//or:
if ($a == b) dosomething();
They make the code more difficult to read and follow.
- class/function format:
class testing
{
function print_to_screen()
{
global phpgw, phpgw_info;
if ($var == 'example')
{
echo 'This is only an example';
}
else
{
echo 'This is not a test. This is the real thing';
}
}
}
- Associative arrays must be written in the following manner:
$array = array
(
'var' => 'value',
'var2' => 'value2'
);
Note that tabs are preferred around the '=>'.
-
Use the long format for <?php. Do NOT use <?.
-
All code should start with 1 tab. Example:
<?php
dosomething();
if ($a)
{
dosomemorestuff();
}
//NOT:
<?php
dosomething();
if ($a)
{
dosomemorestuff();
}
Thanks for following these rules :)
Wiki ▸ [Developer Docs](Developer Docs) ▸ Coding Standards
Language: |
- General information
- Distribution specific instructions
- Update recommendations and troubleshooting
- Tuning EGroupware for higher number of users
- Docker-compose installation: Linux, Windows, Mac, Synology, QNAP
- Configure IMAP push
- IMAP Push Notifications for Dovecot 2.2+
- Using EGroupware Mail server with ActiveDirectory
CTI / Computer Telephone Integration
Using SmallPART with a LMS (Moodle, OpenOLAT, ...)
Synchronisation between Untis / Webuntis and EGroupware
Development