Home

Seiteninterne Links und Ausgaben-Escaping: Bitte abstrahieren Sie!

Published on 22 Nov 2010. Tagged with php.

Es gibt einige qualitative Aspekte der PHP-Entwicklung, die in einem Projekt egal welcher Größe eingehalten werden sollten. Dazu zählen syntaktische oder handwerkliche Grundlagen wie E_STRICT-kompatibler Code, der Verzicht auf Short-Tags, die Unterstützung von UTF-8 und das korrekte Behandeln von Magic Quotes. Doch auch auf Ebene des eigentlichen Anwendungsdesigns gibt es etliche simple Kniffe, die unbedingt beachtet werden sollten, weil sie den Umgang mit der Codebasis ungemein erleichtern. Das ist besonders für kleine Projekte interessant, die auf handelsüblichem Webspace laufen sollen, der keine großartigen serverseitigen Konfigurationsmöglichkeiten bietet.

Jedes Projekt sollte zwei Dinge in eigenen Funktionen oder Methoden umsetzen: den Zusammenbau von internen Links und das Escaping von Ausgaben. In beiden Fällen ist die Begründung ähnlich. Wenn interne Verlinkungen hardgecodet werden, ist es kaum möglich, das URL-Schema anzupassen, falls Zugriff auf mod_rewrite oder ähnliche serverseitige Technologien besteht. Wenn als Escape-Funktion überall im Code htmlspecialchars oder htmlentities eingesetzt wird, ist es nicht ohne Veränderung vieler Dateien möglich, das Ausgabe-Encoding des Projekts in einer Weise anzupassen, die einen Wechsel zwischen diesen beiden Funktionen erfordern würde (etwa von ISO-8859-1 zu UTF-8).

Folgende zwei Funktionen sollten in jedem Projekt in irgendeiner Weise implementiert sein:

function url(array $params) {}
function escape($s) {}