[PHP Grundlagen] Das E.V.A.-prinzip, kurz und knapp - Druckversion +- PHP Rocks (https://www.php-rocks.de) +-- Forum: Knowledge Base (https://www.php-rocks.de/https://www.php-rocks.de/forum/18-knowledge-base.html) +--- Forum: Tutorials (https://www.php-rocks.de/https://www.php-rocks.de/forum/20-tutorials.html) +--- Thema: [PHP Grundlagen] Das E.V.A.-prinzip, kurz und knapp (/https://www.php-rocks.de/thema/75-das-eva-prinzip-kurz-und-knapp.html) |
Das E.V.A.-prinzip, kurz und knapp - Arne Drews - 20.09.2015 Das EVA-Prinzip als Grundlage der Datenverarbeitung Eines der grundlegensten und wichtigsten Prinzipien im Bereich der Programmierung ist das EVA-Prinzip, das jedem Entwickler ( fast jeder Sprache ) bekannt sein sollte. Das EVA-Prinzip definiert den Ablauf einer Programmlogik und steht für "Eingabe -> Verarbeitung -> Ausgabe", was einfach umschrieben bedeutet, daß benutzerdefinierte Eingaben zunächst verarbeitet und dann erst an die Ausgabe gesendet werden. Eine logische Erklärung zur Einhaltung für das E.V.A.-Prinzip dürfte die Tatsache sein, daß PHP auf dem Server arbeitet, also die Daten dort auch verarbeitet werden. Senden wir bereits Ausgaben in Form von HTML und wollen hinterher noch PHP-Code ausführen, machen wir dem Interpreter und uns selbst das Leben schwer. Warum? Nun, der Interpreter muß permanent den PHP-Code verlassen und wieder betreten und wir unterbinden im schlimmsten Fall die Verwendung von Funktionen, wie session_start() oder header() .Um das EVA-Prinzip zu verdeutlichen, verwenden wir als Beispiel ein kurzes Login, das eine Usereingabe per Formular entgegennimmt, diese verarbeitet und dann mit einer Ausgabe reagiert. HinweisDas verwendete Beispiel soll keinen Anspruch auf Vollständigkeit in allen Details haben, sondern dient einfach nur der Erklärung des EVA-Prinzips anhand eines funktionierenden und nachvollziehbaren Beispiel-Codes.Eingabe Die Eingabe aus unserem Beispiel soll über ein Formular kommen, das wie folgt aufgebaut sein soll: Code: <form name="login" action="login.php" method="post">
$_POST zurück, da die Übertragungsmethode POST für Formulare am sinnvollsten ist.Verarbeitung Wird das Formular ausgefüllt und abgesendet, haben wir die Möglichkeit, über $_POST die eingetragenen Daten zu verarbeiten. Dazu nehmen wir an, daß die erforderlichen Daten in einer Datenbank hinterlegt sind.Wir wollen nun herausfinden, ob der User korrekte Daten eingegeben hat und der Login somit erfolgreich ist. Wir setzen eine gültige Datenbankverbindung voraus, worauf in dem PDO-Tutorial näher eingegangen wird. Das Verbindungsobjekt soll uns für das Beispiel als PDO -Objekt in $dbObject zur Verfügung stehen.Wir fragen also die Daten des Users ab, validieren diese und senden eine Anfrage mit den Daten an die Datenbank: PHP-Code: // Eingabe filtern HinweisDie Verarbeitung der Daten ist für dieses Beispiel absichtlich minimal gehalten. Für den produktiven Fall empfiehlt es sich, bspw. die Verarbeitung abhängig der tatsächlich übertragenen Daten auszuführen und PreparedStatements zu verwenden. Die einfachste Variante ist das Abfragen eines POST-Wertes, der erwartet wird.PHP-Code: if ( isset($_POST['useremail']) ) { Ausgabe Wir haben jetzt die Eingabe entgegen genommen und diese verarbeitet. Mit dem Resultat sind wir nun in der Lage, die Ausgabe zu entscheiden/steuern. PHP-Code: if ( is_null($sUserName) ) { Wir haben an dieser Stelle nun eine kleine Formularverarbeitung nach dem EVA-Prinzip durchgeführt.
Generelle Verstöße gegen das E.V.A.-Prinzip Wir haben jetzt das E.V.A.-Prinzip anhand eines kleinen konstruierten Falles mit einem Login gesehen. Grundsätzlich sieht man häufig deutliche Verstöße gegen das E.V.A.-Prinzip, in dem Berechnungen mitten im HTML-Code durchgeführt werden, wie in folgendem kleinen Beispiel zu sehen: PHP-Code: <body> <div> -Tag mit der CSS-Klasse welcome zu sehen ist. Der bessere Weg wäre hier allerdings auch, die Ausgabe in der Verarbeitung vorzubereiten und die Ausgabe im Anschluß als gesamtes auszuliefern.
|