NoFollow Free!
SHIFT Weblog

Dieses Blog ist ein Online-Magazin für erfahrene Website-Entwickler und Webdesigner, die PHP und Webdesign lieben.

Archiv: März 2011

PHP

Ausnahmezustand: PHP und Exceptions

Exit

Mit PHP 5 wurde dem Entwickler ein Werkzeug zur Verfügung gestellt, dass es in anderen objektorientierten Sprachen wie C++ und Python schon lange gibt: Exceptions. Mit diesen hat der Entwickler die Möglichkeit, auf ungewollte Ereignisse zu reagieren. Exceptions werden “geworfen”, das bedeutet, sie unterbrechen den normalen Programmfluss und behandeln eine eventuelle Ausnahme, die den weiteren Programmverlauf stören können. In einer Desktopapplikation beispielsweise könnten Exceptions genutzt werden, um noch vor dem Windows-Fehlermeldungsfenster ein eigenes zu generieren, in der der Benutzer die Möglichkeit hat, einen Fehlerbericht an die Softwarefirma zu schicken. Ohne diese Ausnahmebehandlung würde das Programm mit einer Windows-Standardmeldung sang- und klanglos abstürzen und der User wäre verwirrt. Auch in PHP lassen sich Exceptions sinnvoll nutzen. Mit Exceptions sind sicherlich schon einmal alle Entwickler in Berührung gekommen, die ein MySQL-Statement via PDO mit einer fehlerhaften Syntax abgegeben haben.

Im unten aufgeführten Beispiel mal ein ganz einfacher Anwendungsfall – zunächst ohne Fehlerbehandlung: Aus einer Zahl soll eine Wurzel gezogen werden:

$a = sqrt(9); // Wert von $a: 3
$b = sqrt(-9); // Wert von $a: NaN

Weiterlesen ›

PHP, Quickies

Snippet: Geldbeträge mit PHP bereinigen

Folgendes Szenario: Ein Benutzer einer PHP-Applikation muss einen Geldbetrag eingeben. Für die Weiterberechnung und Speicherung dieses Betrages erwartet PHP ein Format wie 123 oder 567.89, nicht aber 246,80 oder 500,-.

Bevor dem Benutzer der Applikation lange Erklärungen geben, wie eine solche Eingabe auszusehen hat, sollten wir uns selbst um die Bereinigung der Geldbetrageingabe kümmern. Wenn der Benutzer allerdings wirklich Quatsch eingibt (etwa ‘foo,bar’) so sollte ein Wert von 0 bzw. 0.00 zurückgegeben werden.

Weiterlesen ›

PHP, Webdesign

This is not sexy: PHP-Template-Engines á la Smarty

Smarty not sexy

Nachdem ich mich in der Vergangenheit über das Zend Framework, Flash und CSS Frameworks ausgelassen habe, ist es mal wieder an der Zeit, den Buhmann zu spielen und möchte mich hier nun über einige PHP-Template-Engines aussprechen. Stellvertretend für viele dieser Projekte werde ich im laufe des Artikels “Smarty” nennen – ich glaube, dass dieser Name vielen PHP-Entwicklern ein Begriff ist.

Der Grundgedanke ist nicht verkehrt: Bei der Erstellung von (PHP-)Applikationen sollte darauf geachtet werden, die Programmlogik vom Design und der Ausgabe zu trennen. Unter Beachtung der Model-View-Controller-Struktur sollte dieses Vorhaben auch keine Hexerei sein. Doch wie könnte man den PHP-Code vom Design (der XHTML-Datei) trennen? Ganz einfach: Mit einer Template-Engine. Sie kümmert sich um die Zuweisung von Variablen innerhalb des Controllers und um die Ausgabe der in der View-Datei. Eine simple View-Datei unter Beachtung des MVC-Prinzips könnte nun also so aussehen:

<!DOCTYPE html>
<html>
    <head>
        <title><?php echo $titel; ?></title>
    </head>
    <body>
        <h1>Hallo <?php $username; ?></h1>

        <?php echo $usercontent; ?>
    </body>
</html>

Doch Halt! Eigentlich wollten wir doch den PHP-Code vom Design trennen, oder? In unserer View-Datei ist nun aber trotzdem PHP-Code zu sehen. Was können wir tun, damit der Designer nicht am, *räusper*, hochsensiblen PHP-Code werkeln muss? PHP-Template-Engines wie Smarty verwenden für die Lösung des Problems eine Metasprache, die auch ohne PHP-Code die Ausgabe und Formatierung von Variablen übernimmt.

Weiterlesen ›