Suchen
Inside Wiki
Nützliche Links
phpforum.de Tipp
 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > phpforum.de Wiki > phpforum.de Wiki

PHP Wiki Dieses Wiki sammelt Lösungen, zu Problemen, welche immer wieder im Forum auftauchen.

 
 
Artikel-Optionen Ansicht
  #1  

Standard EVA Prinzip

 
 

Inhalte

Das EVA Prinzip


EVA hat hier nix mit Glauben oder gar mit weiblichkeit zu tun!
Sondern:
E = Eingabe
V = Verarbeitung
A = Ausgabe
Und zwar in genau dieser Reihenfolge!
Dieses Prinzip gehört untrennbar zum Programmieren, wie das Atmen zum Menschen. Jeder Verstoß dagegen führt zu Sorgen und Nöten. Man kann sogar soweit gehen und sagen: "Wird beim Start eines neuen Projektes dieses Prinzip ignoriert/übergangen, dann ist das ganze Projekt, schon am ersten Tag, zum Scheitern verurteilt." Im Folgenden werden wir sehen, wie man PHP Anwendungen innerhalb dieses Prinzips entwickeln kann.

Eingabe


Die Eingabe erledigt PHP im Verborgenen für uns. Es analysiert den Request und stellt uns die Daten in einigen Superglobalen Arrays zur Verfügung.
Ins Besondere seien hier genannt:
  • $_GET
  • $_POST
  • $_REQUEST
  • $_SERVER
  • $_ENV
  • $_FILES
  • $_COOKIES
Das einzige Array, welches wir uns in dieser Phase selbst beschaffen müssen ist $_SESSION. Das tun wir mit session_start().
Evtl. kann man auch noch das Lesen einer Konfigurations Datei als Eingabe betrachten.

Verarbeitung


Wie der Name schon sagt, hier wird verarbeitet.
  • Funktionsaufrufe
  • DB Zugriffe
  • Entscheidungen getroffen
  • Daten für die Anzeige bereitgestellt
Und vieles mehr.

Ausgabe


Erst jetzt nach dem alle Entscheidungen getroffen und die Daten zur Ausgabe bereit liegen, wissen wir, ob HTML, XML, PDF oder ein Bild ausgegeben werden soll. Also ist jetzt der richtige Zeitpunkt um die "passenden" Header zu senden.
Und direkt danach können dann die Daten versendet werden.


HTTP Header


Grundsätzlich:
Wenn wir einen Header senden wollen, darf vorher keine Ausgabe gemacht werden, weil Header IMMER vor dem Body eines HTTP Response stehen müssen.

Location Header


Wenn wir einen LocationHeader senden wollen, darf vorher keine Ausgabe gemacht werden. Ebenso, macht es seltenst Sinn, danach noch irgendwas Auszugeben. Weil: Es wird ja niemals vom Browser angezeigt werden.

Beispiel:
PHP Quellcode:
<?php
// Eingabe: macht PHP für uns

// Verarbeitung:
$query = 'q='.urlencode('eva prinzip');
if(isset($_GET['action']) && 'google'===$_GET['action'])
{
  // Ausgabe: weiterleitung zu Google
  header('Location: http://www.google.de?'.$query);
  exit; // beendet das Script
}

// weitere Ausgaben
?>
<a href="?action=google">Klick mich für Google</a>


Sessions


Die Sonderrolle von session_start() wurde ja oben schon erwähnt, aber was hat es denn besonderes?
Die Sessionverwaltung bringt unser EVA Prinzip etwas ins rotieren. Sie sendet beim session_start() schon Header, welche eigentlich zur Ausgabe gehören.
Diese sind:
  • Session Cookie
  • Proxy Cache Header
  • Browser Cache Header
Also, dürfen ALLE weiteren Ausgaben erst nach session_start() erfolgen.

SetCookie


Da auch Cookies im Header gesetzt werden, gilt das oben gesagte auch für setcookie()

Links


HTTP Header
Wikipedia: EVA Prinzip
External Link MVC Design Pattern


Mitwirkende: combie, Innocentus, Bernd456
Erstellt von combie, 01.04.2008 am 13:19
Zuletzt bearbeitet von combie, 20.12.2013 am 18:54
0 Kommentare , 11410 Betrachtungen

Dieser Text steht unter der GNU-Lizenz für freie Dokumentation


 

Lesezeichen

Stichworte
grundlagen

Artikel-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session verliert Variablen oder ich habs Prinzip nicht verstanden *lächel* eXistenZ PHP 9 23.10.2007 13:14
prinzip der datenübergabe von pop-fenstern jan99 PHP 4 09.08.2007 14:44
Prinzip von voneinander abhängige SQL-Anweisungen und rollback() harryhoelle Datenbanken 6 05.06.2006 10:45
Suche Tutorial/Einführung für das Model-View-Controller-Prinzip! regex PHP 2 09.12.2005 09:10
Php nutzen? Doch welches Prinzip? breaddes PHP 1 08.02.2005 14:23


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:26 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC