Translations:Development Best Practices/3/de
From Joomla! Documentation
- Die Konstante
DS
oderDIRECTORY_SEPARATOR
darf beim Einbinden von Dateien nicht verwendet werden. Sie wird nicht mehr benötigt, wie von Christian auf php.net beschrieben. - Die Funktion
register_globals
sollte nicht verwendet werden. Dies stellt ein Hohes Sicherheitsrisiko dar. Die Funktion wurde in PHP 5.3 als veraltet eingestuft und in 5.4 entfernt. - Keinen direkten Zugriff auf die Superglobalen
$_GET, $_POST, $_REQUEST, $_FILES und $_SERVER
ermöglichen. Alternativ kann stattdessenJInput
(typischerweise:JFactory::getApplication()->input
) benutzt werden.JInput
filtert die Eingabe und hilft dabei, leichter sichere Software zu entwerfen. - Die SQL-Abfragen sollten nicht hardcodiert und Rohdaten müssen escapet in die Abfragen eingebunden werden. Immer mit
JDatabase
/JDatabaseQuery
arbeiten. Es ist so einfach wieJFactory::getDbo()->getQuery(true)
. - Keine willkürlichen Einstiegspunkte benutzen, beispielsweise .php-Dateien, die von außerhalb der Joomla!-Installation und direkt aus dem Internet erreichbar sein müssen, . Diese Praxis, die typischerweise für Zahlungsabwickler und Bildoptimierer verwendet wird, ist extrem unsicher und wird ausdrücklich abgelehnt. Statt dessen sollte eine Joomla!-Komponente oder ein System-Plugin eingesetzt werden.
- Nicht das Rad neu erfinden! Wenn es für eine Aufgabe bereits eine Joomla!-Klasse gibt, sollte man sie benutzen, bevor man seine eigene entwickelt. Die Chancen stehen gut, dass die Kernklasse bereits gut genug und viel besser getestet ist.
- Für die Tabellennamen sollten sinnvolle Präfixe gewählt werden. Wenn die Komponente com_foobar heißt, liegt es nahe, dass die Tabellen dem gleichen Namensschema folgen:
<source lang="sql" style="margin-left:3em;">
// Gut #__foobar_something