Home > Archive > 2010 > November

Seiteninterne Links und Ausgaben-Escaping: Bitte abstrahieren Sie!

By Marc Ermshaus on Monday, November 22, 2010 at 11:55 pm.

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) {}

Add new comment

Name*:

Please leave the following field empty:

E-Mail:

Website:

Message*:

Please use HTML for formatting. Allowed tags:
<a href="">, <blockquote cite="">, <em>, <ul>, <ol>, <li>, <pre>, <strong>, <![CDATA[ … ]]>

<p> tags will be added automatically.

All comments are published under the CC BY-SA license.