Anzeige
Anzeige
UX & Design
Artikel merken

Teil 1: Tipps und Tricks rund um PHP und MySQL: PHP 5 & MySQL 5

Dieser Artikel ist keine Sammlung von Vorschriften, sondern eine Zusammenstellung von Informationen und Empfehlungen für die Anwendungsentwicklung mit PHP. Insbesondere bei der Arbeit im Team sollte die Berücksichtigung der Regeln nicht zum Schaden des Programmierers sein.

9 Min. Lesezeit
Anzeige
Anzeige

Selbst im Zeitalter der Hochsprachen und der ausgeklügelten Analyseverfahren folgt immer noch eine Vielzahl von Entwicklern dem Motto: „Man hat immer die Zeit, alles zweimal zu machen, aber es fehlt immer die Zeit, es von Anfang an richtig zu machen“. Allerdings führt das Prinzip allzu oft in die Sackgasse. Wesentlich sinnvoller und effizienter ist folgendes Motto: „Erst analysieren und strukturieren, anschließend coden und abschließend testen“.

Coderegeln – Sinn und Zweck

Anzeige
Anzeige

Zunächst ein paar Worte zum Sinn und Zweck von Coderegeln: Die Einhaltung von Coderegeln beziehungsweise Konventionen stellt einen wesentlichen Bestandteil umfangreicher Projektarbeiten dar. Darüber hinaus existieren jedoch auch andere nicht ganz unwesentliche Faktoren wie zum Beispiel:

  • übersichtlicher Code
  • funktionierender Code
  • Komponenten und Komponententests
  • einfache Wartung des Codes
  • Code, der leicht zu erweitern ist
  • Wiederverwendbarkeit des Codes
  • Unterstützung von Refactoring

Sämtliche Coderegeln, die im Folgenden vorgestellt werden, sollen dabei behilflich sein, die aufgeführten Punkte zu erfüllen. Durch die Einhaltung der Regeln wird es Teammitgliedern oder Urlaubsvertretungen ermöglicht, den Code zu begreifen und zum Beispiel Bug-Fixes vorzunehmen oder Komponenten eines anderen zu verwenden, ohne zeitaufwendig eigene Lösungen erarbeiten zu müssen.

Anzeige
Anzeige

Um diese Ziele zu erreichen, sollte der Code einer Anwendung:

Anzeige
Anzeige
  • leicht zu lesen
  • leicht verständlich
  • gut dokumentiert
  • frei von typischen Fehlern
  • durch verschiedene Entwickler wartbar sein. Im Idealfall wäre ein Kunde in der Lage, die Komponenten der Anwendung zu verstehen und weiterzuverwenden.

Das Ziel von leicht verständlichem Quellcode ist erreicht, wenn jedes Teammitglied jede Komponente erklären kann. Nicht zuletzt soll jede Arbeit am Projekt, dem Code und der Dokumentation motivieren. Je höher der Frustfaktor ist, je unübersichtlicher Strukturen und Code sind, desto größer ist die Wahrscheinlichkeit, dass die Arbeit keinen motiviert. Solch eine Situation gilt es auf jeden Fall zu verhindern.

Die Coderegeln

Regel 1: Achten Sie auf Struktur und Übersichtlichkeit – Der weltweit wichtigste und weitverbreitetste Standard ist das Einrücken von Code. Hier sollte sich das Team oder der Entwickler auf einen Standard festlegen.

Anzeige
Anzeige

Regel 2: Halten Sie alles so einfach wie möglich – Wenn man eine lange und komplizierte Funktion durch eine Klasse mit vier oder fünf übersichtlichen Methoden ersetzen kann, so ist der Aufwand fast immer gerechtfertigt.

Regel 3: Jede PHP-Datei sollte das Copyright, den Dateinamen und einen Kommentar enthalten, welcher die Funktionalität beschreibt – Das Copyright sollte zur Wahrung der eigenen Rechte oder der gewählten Lizenz in jeder PHP-Datei erwähnt werden.

Regel 4: Jede Datei wird mit Änderungskommentaren und einem Zeitstempel versehen – Wenn kein SVN oder CVS zur Verfügung steht, sollte das Team eine Konvention vereinbaren, wie Änderungen am Quellcode dokumentiert werden. Zum Beispiel könnte man die Initialen jedes Teammitglieds verwenden und das Datum. Ob die Kommentare im Kopf der Datei gemacht werden oder an der betroffenen Stelle, sollte das Team vor dem Projekt entscheiden und dann einheitlich für sämtliche Dateien umsetzen.

Anzeige
Anzeige

Regel 5: Die Sprache für Kommentare und Bezeichner sollte Englisch sein – Bezeichner von Variablen, Funktionen, Klassen und so weiter sollten in Englisch definiert werden. Sämtliche Kommentare und Dokumentation sollten ebenfalls in Englisch erfolgen. Es ist absolut notwendig und unumgänglich, Quellcode zu dokumentieren. Absolut unzulässig ist eine Mischung aus Englisch und Deutsch.

Regel 6: Externe Dateien sollten mit „*.inc.php“ enden und in einem Unterverzeichnis liegen – Es ist besser, ein Unterverzeichnis „include“ oder „inc“ für die externen Dateien anzulegen, die per include() oder require() eingelesen werden. Es muss die Dateiendung „*.inc.php“ verwendet werden. Die Dateiendung „*.inc“ reicht leider nicht aus, da sie standardmäßig nicht vom PHP-Parser erfasst wird und sämtliche Informationen der Datei unter anderem auch sensible Daten, wie Passwörter, im Klartext erscheinen würden.

Regel 7: Jede Funktion muss mit Kommentaren versehen werden – Eine der wichtigsten Aufgaben der Programmierung liegt in der Dokumentation. Das ist in einem Team unverzichtbar, nur so können die anderen Team-Mitglieder alle Funktionen verstehen, verbessern und nutzen.

Anzeige
Anzeige

Regel 8: Lange Kommentare sollten mit /* und kurze Kommentare mit // gemacht werden – Ein Kommentar beschreibt in der Regel eine Funktion, Methode oder einen ganzen Absatz des Quellcodes. Jedes Team sollte eine Entscheidung darüber fällen, in welcher Art und welchem Umfang Kommentare angewendet werden. Das erklärte Ziel jeder Dokumentation und jedes Kommentars muss Transparenz und Verständlichkeit für den Quellcode sein.

Regel 9: Sämtliche Bezeichner werden aussagekräftig und eindeutig definiert – In einem Programm können unzählige Bezeichner beziehungsweise Namen definiert werden. Jede Variable, Funktion, Klasse und so weiter benötigt einen Bezeichner. Sie müssen aussagekräftig und eindeutig definiert werden, sollten nicht zu lang, aber auch nicht zu kurz sein. Aussagekräftige Bezeichner sagen immer etwas über den Inhalt und die Verwendung aus.

PHP
$datenbank_nutzer = "xyz";
entferne_sonderzeichen();
class PersonalVerwaltung {...}

Listing 1

Regel 10: Benennung von Variablen und Funktionen erfolgen mit Unterstrich und in Kleinbuchstaben – Wie schon erwähnt, ist der Einsatz von Abkürzungen mit Vorsicht zu genießen. Um den Einsatz von Abkürzungen dennoch zu ermöglichen und Variablen eindeutig und mit mehreren Worten benennen zu können, verwendet man den Unterstrich zur Trennung der Wörter. Bei der Verwendung von Abkürzungen sollten Sie darüber hinaus darauf achten, dass sie nicht zweideutig sind.

Anzeige
Anzeige
PHP
datenbank_passwort = "xyz";
datenbank_verbindung();

Listing 2

Regel 11: Konstanten werden in Großbuchstaben definiert – Für Konstanten gelten die gleichen Regeln wie für andere Bezeichner. Eine Ausnahme gibt es jedoch: Sämtliche Konstanten werden groß geschrieben.

PHP
define('SERVER', 'localhost');
define('NUTZER', 'admin');

Listing 3

Regel 12: Funktionen, Parameter und Rückgabewerte werden gut dokumentiert – Funktionen sollten immer einen Rückgabewert (return-Parameter) besitzen. Falls Ihre Funktion ausschließlich zur Verarbeitung oder zur Ausgabe gedacht ist, sollte die Funktion dennoch TRUE oder FALSE zurückliefern. Das könnte ein Indikator dafür sein, ob die Funktion erfolgreich oder nicht erfolgreich abgearbeitet wurde. Wie bereits erwähnt, müssen Funktionen und Parameter gut dokumentiert und beschrieben werden. Das gilt auch für die Rückgabewerte. Bezeichner und Parameter müssen aussagekräftig definiert werden.

Regel 13: Die Klammern für eine Funktion „()“ stehen direkt am Funktionsnamen – Das ist ein sehr verbreiteter Standard. Wie die Parameter einer Funktion behandelt werden, ist allerdings nicht einheitlich geregelt. Bewährt hat sich, den Parameter ohne Leerzeichen zu notieren, mit Ausnahme der Kommata. Der Funktionsaufruf summe(99,95) könnte von einem unerfahrenen Entwickler falsch interpretiert werden. Hier werden zwei Parameter übergeben, nicht eine Dezimalzahl, die in PHP mit „99.95“ gesetzt werden würde. Sie sollten daher auch aus Gründen der Übersichtlichkeit nach dem Komma ein Leerzeichen einfügen, so wie es im Sprachgebrauch bei einer Auflistung auch üblich ist.

Anzeige
Anzeige
PHP
str_word_count($str);
count($array);

Listing 4

Regel 14: Funktionen mit langen oder zahlreichen Parametern müssen übersichtlich gesetzt werden – Es wird oft notwendig sein, Funktionen mit vielen Parametern zu benutzen und/oder lange Variablennamen zu definieren. Die Funktion mktime() enthält sechs Parameter. Beim Aufruf der Funktion sollten die Parameter auf mehrere Zeilen verteilt sein.

PHP
$zeitstempel = mktime(
	16,
	30,
	59,
	10,
	10,
	2006
);

Listing 5

Regel 15: Code und Design müssen voneinander getrennt werden – Code und Design zu trennen, ist eine der wichtigsten Regeln. Klassen und Funktionen unterstützen Sie darin, modular zu programmieren. Wenn Sie jedoch HTML und PHP mischen, behindern Sie sich bei diesem Ansatz und Ihre Skripte werden automatisch unübersichtlich. Diese Regel kommt vor allem bei Template Engine, wie Smarty, zum Einsatz.

Regel 16: Alle Templates müssen validiert werden – Templates sollten in der Regel nur HTML-Code und die Schnittstellen für die Template Engine enthalten. Die Templates können und müssen validiert werden. Templates, die erfolgreich validiert wurden, können leichter gewartet werden, da Designfehler wesentlich schneller gefunden werden können. Wenn zum Beispiel ein „</div>“ vergessen wurde und ein Layer fehlerhaft dargestellt wird, dann wird dies bei der Validierung als Fehler hervorgehoben.

Anzeige
Anzeige

Regel 17: Bezeichner einer Klasse werden mit Großbuchstaben voneinander getrennt – Für Klassen, Methoden und Eigenschaften gelten alle bisher genannten Konventionen. Allerdings werden keine Unterstriche zur Trennung der Begriffe eingesetzt, sondern die verschiedenen Begriffe werden mit Großbuchstaben voneinander getrennt. Der Name der Klasse und die Methoden werden am Anfang groß geschrieben und die Eigenschaften klein. Dadurch können Methoden und Eigenschaften einfacher voneinander unterschieden werden. Methoden werden darüber hinaus oft mit Parametern aufgerufen. Somit sollte gewährleistet sein, Methoden und Eigenschaften nicht zu verwechseln.

PHP
class DatenbankVerbindung
{
	protected datenbank_nutzer;
	protected datenbank_passwort;

	public Verbinden()
	{
		//...
	}
}

Listing 6

Regel 18: Variablen in Zählschleifen werden mit einem Buchstaben definiert – Zählvariablen in Schleifen werden in der Regel mit einem Buchstaben $i, $j und so weiter definiert. Dieser Standard hat sich bei den meisten Hochsprachen durchgesetzt.

Regel 19: Konditional- beziehungsweise Trinitäts-Operatoren dürfen nicht verschachtelt werden – Nach Möglichkeit sollten Konditional-Operatoren in eine Zeile passen. Ein Konditional-Operator darf nicht verschachtelt werden. Man sollte in solchen Fällen Kontrollstrukturen wie if, elseif und switch bevorzugen. Gegen einfache Konditional-Operatoren ist jedoch nichts einzuwenden.

Regel 20: SQL-Befehle werden groß geschrieben – Eine SQL-Abfrage setzt sich aus vielen Elementen zusammen. SQL-Befehle und SQL-Funktionen wie SELECT, UPDATE, DELETE, MAX(), MIN() und so weiter werden grundsätzlich groß geschrieben.

PHP
$sql_abfrage = "SELECT * FROM tabelle ORDER BY id";

Listing 7

Abschließend noch einige Empfehlungen, die die Lesbarkeit von Quellcode erleichtern:
Zum Einrücken von Quellcode sollten Tabulatoren verwendet werden. Sämtliche geschweiften Klammern „{}“ werden in eine eigene Zeile gesetzt. Vermeiden Sie möglichst die Verwendung von Zahlen in Bezeichnern.

Coderegeln – Regelnbrechen

Immer wenn eine Regel gebrochen wird, sollte das deutlich und erkennbar dokumentiert werden. Das ist die wichtigste Regel, denn sie ermöglicht zum einen Flexibilität und erfordert zum anderen eine genaue Dokumentation, warum man sich für einen Bruch der Regeln entschieden hat.

Die für jede Sprache geltenden Konventionen erleichtern das Einarbeiten in fremden oder eigenen Code. Dennoch gibt es keinen Zwang wie bei der Sprachsyntax, die Empfehlungen einzuhalten. Es wird immer eine freiwillige Leistung des Entwicklers oder des Teams bleiben, guten Code zu schreiben. Allerdings lohnt es, sich mit der hier aufgeführten Konvention zu befassen.

Dokumentations-Werkzeuge

Eine brauchbare Dokumentation ist Gold wert. Um das Dasein eines Entwicklers zu erleichtern, steht dazu inzwischen eine Vielzahl von Tools zur Verfügung, die es ermöglichen, eine Dokumentation in kürzester Zeit zu erstellen. Die Programme analysieren den Quellcode, entnehmen die Kommentierung und erstellen daraus eine fertige Dokumentation. Jedoch ist keine der Anwendungen in der Lage, die Arbeit komplett zu erledigen. Die resultierende Dokumentation kann nur so gut wie Ihre Vorarbeit sein.

Bei der Entwicklung von PHP-Anwendungen ist der Einsatz des PHPDocumentor [1] empfehlenswert. Das Programm stellt für die Erzeugung einer Dokumentation ein komfortables Web-Interface

zur Verfügung. Die erstellten Dokumentationen lassen sich auch online einsetzen. Als Alternative zum PHPDocumentor eignet sich ebenso Doxygen [2] von Dimitri van Heesch für diesen Zweck. Es wird unter anderem zur Dokumentation der Standard PHP-Library verwendet.

Performance versus Verständlichkeit

Immer wieder wird behauptet, dass gut lesbarer Code nicht performant sein kann. Obwohl die Aussage nicht ganz richtig ist, ist sie auch nicht falsch. Gut lesbarer Code ist auf jeden Fall länger und umfangreicher und daher auch etwas langsamer. Wenn aber nicht gerade an einem Performance-hungrigen Streaming-Server entwickelt wird oder umfangreiche Operationen durchgeführt werden, sollte sich der Performance-Unterschied nicht wesentlich bemerkbar machen. Gut verständlicher Code wird allerdings viel Zeit bei der Wartung und Erweiterung einer Anwendung sparen.

Fazit

In zahlreichen anderen Programmiersprachen ist eine einheitliche Syntax bereits selbstverständlich. In PHP ist dieser Stand der Entwicklung noch nicht erreicht. Ein Standard ist noch nicht festgelegt. Vielleicht können die aufgeführten Coderegeln aber dazu beitragen, dass es bald einen Standard geben wird und Entwickler auch in PHP-basierten Anwendungen verständliche Codestrukturen und Kommentare vorfinden.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Ein Kommentar
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Gustav Sucher

Was ist ein Konditional-Operator? Verstehe nicht was damit gemeint ist.

https://www.time-keep.com/jobs

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige