In diesem Beitrag möchte ich euch kurz meine Standards in Sachen Pluginentwicklung aufziegen. Es verschafft euch einen kleinen Überblick über meine Struktur und Arbeitsweise. Solche Standards helfen vorallem dann, wenn man in Teams von mehreren Personen zusammenarbeitet und sich somit besser zurechtfinden kann.
Ich selbst versuche meinen Stil immer weiter zu verbessern und diverse Fehlerquellen über solche Wege auszuschliessen.
Filesystem
Hier möchte ich euch kurz mein Standard Aufbau meiner Plugins zeigen. Hier erstmal die Struktur im Filesystem
- PLUGIN
- css
- plugin.css
- images
- […]
- javascript
- plugin.js
plugin.php
Sicherheit
In einem Plugin von Frank Bültge sah ich diesen Ansatz um das Plugin vor Aufrufen außerhalb des WordPress-Systems zu schützen. Eine sinnvoller und leicht anzuwendender Schutz um mögliche Sicherheitslücken in seinen Plugins zu schliessen.
if ( !function_exists('add_action') ) {
header('Status: 403 Forbidden');
header('HTTP/1.1 403 Forbidden');
exit();
}
Konstanten
Zum einbinden der CSS-, Javascript- oder Bilddateien setze ich sehr gerne auf Konstanten um Tipparbeit zu sparen, aber auch gleichzeitig die Kompabilität zu diversen WordPress Konfiguration zu gewährleisten. Daher setze ich zu beginn erst die nötigen defines. ‘CB_’ steht hierbei für mein Plugin ContentBox. Diese Präfixe nutze ich bei allen Funktionen damit kein Fehlermeldung entstehen, da eventuell andere Plugins eine ähnliche Funktion mit den Namen haben.
define('CB_URL', WP_PLUGIN_URL.'/contentboxes');
define('CB_IMG', CB_URL.'/images');
define('CB_CSS', CB_URL.'/css');
define('CB_JS', CB_URL.'/javascript');
Funktionen
Während der Entwicklung von Plugins ist es sehr wichtig alle Funktionen direkt zu dokumentieren um den Überblick nicht zu verlieren. Das stellt sicher, dass man sich später nicht fragt wozu manche Funktion überhaupt existiert. Auch hierfür hab ich mir in TextMate ein Snippet angelegt.
/**
* Returns the first character
*
* @param str $bar Any string
* @return str First character of $bar
* @author Ralf Hortt
**/
function foo($bar)
{
return $bar['0']:
}
Diese Funktion dient natürlich nur als Beispiel und erfüllt keine besondere Aufgabe. Dieser Standard des kommentierens findet man auch in phpDocumentor wieder und sich somit sehr schnell einen Überblick verschaffen.
