Facebook
Twitter
Google+
Kommentare
0

PHP 5.3 Feature: Namespaces

Dies ist ein Text, der von einem Autor auf content.de erstellt wurde. Mehr dazu im Artikel über den content.de Test.

Mit Hilfe der Skriptsprache PHP werden hauptsächlich Webanwendungen oder Webseiten erstellt. Unter der PHP-Lizenz wird PHP als freie Software verbreitet. Durch die breite Datenbankunterstützung, Internet-Protokolleinbindung und durch die Verfügbarkeit zahlreicher Funktionsbibliotheken zeichnet sich PHP aus. Bei 75 Prozent aller Webseiten wird PHP als Programmiersprache eingesetzt. Es gibt keine andere Programmiersprache, die häufiger verwendet wird als PHP.

Viele wichtige PHP-Versionen wurden bis zum heutigen Tage entwickelt und in Zukunft wird die Entwicklung weiter laufen. Zu den wichtigen Versionen gehört auch PHP 5.3. Diese Version wird ausgezeichnet durch die Unterstützung von Namespaces. Der englische Begriff Namespace ist ein Programmierungsbegriff. Namespace bedeutet übersetzt Namensraum. Bei der objektorientierten Programmierung werden die Objektnamen als Baumstruktur angeordnet. Eindeutig angesprochen werden diese durch gewisse Pfadnamen innerhalb von der Namespace.

Nun sollt Ihr mehr über Namespace erfahren. Namespaces sind deklatorische Bereiche. Jeder weitere Name der in der Deklarierung auftaucht, bekommt einen zusätzlichen Bezeichner angeheftet. Diese zusätzlichen Bezeichner verhindern Verwechslungen mit anderen Namen, die in dem Programm deklariert sind. Es ist möglich gleiche Namen in verschiedenen Namensräumen ohne Probleme zu benutzen. Das funktioniert auch, wenn in der gleichen Übersetzungseinheit der gleiche Name auftaucht. Jeder Name ist eindeutig durch die angeheftete Bezeichnung des Namensraums. Um Euch zu erklären was das in Bezug auf PHP bedeutet, solltet Ihr zunächst von der Syntax ausgehen:

<?php
namespace PHPHatesMe;

function sometimesSure()
{
    return 'Yeah!';
}

Durch eine Deklaration wird ein neuer Namensraum eingeleitet. Wichtig ist, dass bei der Verwendung von Namespaces vor jeder Zeile der PHP-Code steht. Ihr solltet nicht vergessen, dass bei dieser Notation nur eine Namespace pro Datei ausführbar ist. Bei dem Aufruf dient der Backslash als Separator für Namensräume. Leider ist der Backslash nur auf englischen Tastaturen als Separator vorteilhaft für den Benutzer. Auf anderen Tastaturen wünschen sich viele Benutzer eine andere Eingabetaste für die Ausführung von dem Separator, da die Bedienung des Backslash ein wenig umständlich und gewöhnungsbedürftig ist. Wenn Ihr aus einem Namespace oder aus einer Datei heraus aufrufen möchtet, ist es nötig den Präfix an den Anfang zu setzten.

<?php
echo \PHPHatesMe\sometimesSure(); //Yeah!

Mit dem Keyword “use” kann eine Namespace, durch eine globale Funktion, in eine andere eingefügt werden. In diesem Beispiel wird ein Namensraum in eine globale Funktion importiert. Diese globale Funktion des Namensraums ist ein bedeutsames Objekt, wenn Klassen oder Konstanten, die PHP-intern sind, von einem Namespace-Focus durch die globale Funktion angesprochen werden.

<?php
namespace PHPHatesMe\Really;

use \Exception as BaseException;

class Exception extends BaseException;
{

}
function throwMe()
{
    throw new Exception('Who am I?');  //PHPHatesMe\Really\Exception
}

Bringt man “use” in Verbindung mit dem Keyword “as”, ist der Benutzer imstande für Namen einen Alias zu gebrauchen. Somit ist es möglich diesen komplett in den Namensraum zu integrieren. Bei Namenskonflikten oder Klassennamen kann diese Funktion für Euch sehr hilfreich sein. Dabei muss die Reduzierung der Les- und Wartbarkeit des Codes berücksichtigt werden. Ihr müsst schon genau wissen wie Ihr den Namen für Alias wählt. Wird der Name User in “U” umbenannt, stellt Ihr euch bestimmt nach einiger Zeit die Frage, was dieses “U” noch mal für eine Bedeutung hat. Natürlich könnt Ihr das in der Namespace-Deklaration nachsehen, aber dieser Schritt ist bei eindeutiger Deklaration absolut unnötig und ist unter Umständen auf Dauer sehr zeitraubend. Sollten bei der Zuweisung für Alias Konflikte auftreten, werden diese von PHP gemeldet. Nun seid Ihr durch diese kleine Einleitung von PHP 5.3 sicherlich etwas schlauer geworden. Ich hoffe, dass häufige Fragen über PHP 5.3 hiermit erklärt wurden, oder Euch zumindest ansatzweise einen Schritt weiter gebracht haben.

flattr this!

Über den Autor

PHP Gangsta

Der zweitgrößte deutsche, eher praxisorientierte PHP-Blog von Michael Kliewe veröffentlicht seit Mitte 2009 Artikel für Fortgeschrittene.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen