OC Coding Style: Unterschied zwischen den Versionen
fixed some syntax errors at ends of SQL-Strings
Mbirth (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
(fixed some syntax errors at ends of SQL-Strings) |
||
(16 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
The following rules apply to all developers who contribute source code to the Opencaching.de project. This documentation is incomplete / work in progress. | |||
== General rules == | |||
All source code files must | |||
* not contain TAB characters, | |||
* use 4-char indenting columns, | |||
* be UTF-8 encoded without byte order marks, | |||
* use only LF as line ends, with the current exception of [[Entwicklung/Codedoku#Email-Templates|email templates]], which have RFC-822 CR/LF line ends. | |||
There are some tools in the [https://github.com/OpencachingDeutschland/oc-server3/tree/master/local/devel local/devel] directory for verifying and fixing these things. | |||
== PHP == | |||
All contributed or modified code sections must fully comply to the [http://www.php-fig.org/psr/psr-2/ PSR-2] standard (which includes [http://www.php-fig.org/psr/psr-1/ PSR-1]), with these exceptions: | |||
[[Kategorie:Entwicklung| | * When referencing identifiers (e.g. class and function names) that are defined in non-PSR-2-compliant source code files, their names need not be PSR-2 compliant. | ||
* When writing standalone scripts like those in the 'local', 'util' and 'util2' directories, they need not to comply to the PSR-1 "Side Effects" rule. | |||
Only <code><?php</code> and <code><?=</code> open tags must be used. <code><?</code> (short open tags) must not be used. | |||
== SQL == | |||
See also: [[Entwicklung/Codedoku#Datenbank]] | |||
All SQL language elements are written in CAPS, and all user-defined identifiers in `backticks`. Inner joins are coded as JOIN and not as WHERE. All variable values inserted into SQLs '''must''' be escaped, either via placeholders like <code>'&1'</code> or via function <code>sql_escape()</code>. | |||
SQL code inserted into PHP code is enclosed in double quotes and generally formatted like this: | |||
$result = sql( | |||
"SELECT `cache_id`, `wp_oc` | |||
FROM `caches` | |||
JOIN `cache_logs` ON `cache_logs`.`cache_id` = `caches`.`cache_id` | |||
WHERE `caches`.`status` IN ('&1', '&2')", | |||
$status1, | |||
$status2 | |||
); | |||
Note that the opening " is on a tab position, while the following lines start one column to the right. | |||
If lines get too long, the parameters are moved to the next line(s) and indented to the next indent column (which is ''three'' chars right of the preceding line's keyword): | |||
$result = sql( | |||
"SELECT | |||
`caches`.`cache_id`, | |||
`caches`.`type` AS `cache_type`, | |||
`cache_logs`.`date` AS `log_date`, | |||
`cache_logs`.`type` AS `log_type` | |||
FROM `caches` | |||
JOIN `cache_logs` | |||
ON `cache_logs`.`cache_id` = `caches`.`cache_id` | |||
AND `cache_logs`.`type` = '&1' | |||
WHERE | |||
`caches`.`status` = '&2' | |||
AND `cache_logs`.`user_id` = '&3'", | |||
$logType, | |||
$cacheStatus, | |||
$userId | |||
); | |||
[[Kategorie:Entwicklung|Coding Style]] | |||
[[Kategorie:English pages]] |