PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Flash-Attribute - Das Kurzzeitgedächtnis der Frameworks

symfony hat es - Rails hat es auch. Die Flash-Attribute oder eine Abwandung davon. Cake unterstützt etwas ähnliches, aber es ist nicht dasselbe. Um was gehts denn nun eigentlich?

Es geht wie immer ums Prinzip. Es geht um überlastete, zugemüllte Sessions. Um die Vermeidung von hidden-Fields. Um Dinge, die von einer Seite zur nächsten transportiert werden müssen und danach vergessen werden können. Wie, was, warum erfahren  nur die, die weiterlesen ;-)

Eigentlich müsste es Sternschnuppe oder Kurzzeitgedächtnis heissen. Naja, Blitz ist auch okay. Es ist wie eine gute Idee, die schnell kommt und schnell wieder weg ist… Es lebe die Vergesslichkeit!

Mal kurz überlegt, was man schnell wieder vergessen darf:

  • Nachrichten an den User die vom Controller an die View gesendet werden. Beispielsweise etwas in der Art “Der Artikel wurde gelöscht”.
  • Parameter die von einer Seite an die nächste weitergereicht werden.
  • Ein Hashwert zur Überprüfung von Formular-Inhalten.

Okay, viele von Euch (und ich gehöre leider ab und zu dazu) werden solche Dinge in einer Session ablegen. Das ist prinzipiell in Ordnung. Aber wie viele von Euch räumen auf, wenn sie einen Wert nicht mehr benötigen? Die wenigsten, nehme ich an.

Wäre es nicht schön, wenn sich Euer Framework darum kümmert? Nach dem Motto “ich gebs Dir und wenn ich es wieder abrufe, kannst Du es löschen”? Genau das macht der Flash-Mechanismus.

Für PHP sieht das Blitz-Merken so aus:

$this->setFlash('notiz', 'Erstellen erfolgreich'); 

Ruby machts mit Rails so:

flash[:notiz] = "Erstellen erfolgreich"

Und die Ausgabe ist auch super einfach. Hier erstmal PHP:

<?php if ($sf_flash->has('notiz')): ?>
  <?php echo $sf_flash->get('notiz') ?>
<?php endif; ?>

Und jetzt wieder Ruby:

<% if flash[:notiz] %>
  <%= flash[:notiz] %>
<% end %>

Die Frameworks löschen den Wert zwar nicht nach dem ersten Abfragen (das wäre unter Umständen unpraktisch, falls man ihn zweimal ausgeben möchte), aber immerhin nach dem Rendern der Ergebnisseite.

Ein prima Konzept, um Eure Session klein zu halten. Immer schön dran denken: Es geht um Kilobytes!

Ähnliche Artikel:

  1. Mehr Performance bei Flash-Spielen
  2. Deeplinks für Flash und Ajax
  3. Flash Scripte ohne Rahmen einbinden

Schreib Deine Meinung