Hallo Welt!

1. Einleitung

Das vorligende Kapitel zeigt Ihnen, wie Sie auf Basis des APF eine einfache Hallo Welt!-Anwendung erstellen können und welche Mechanismen Sie dazu nutzen können. In Kapitel 6 finden Sie Hinweise zu weiterführender Dokumentation.

2. Vorbereitung

Voraussetzung für die Erstellung der Hallo Welt!-Webseite ist ein lokal installierter Webserver. Hierzu eignet sich beispielsweise XAMPP. Verfügen Sie bereits über einen Webserver können Sie mit dem nächsten Schritt fortfahren.

Als Basis für die Anwendung dient uns eine apf-codepack-*-Datei, die Sie von der Downloads-Seite beziehen können. Entpacken Sie diese nach dem Herunterladen unterhalb des DOCUMENT_ROOT ihres Webservers.

Nun können wir mit der Implementierung des Beispiels beginnen.

3. Erstellen der Bootstrap-Datei

Jede Webseite bzw. Anwendung, die auf dem Adventure PHP Framework basiert benötigt eine Bootstrap-Datei. Diese wird als Einstiegspunkt für alle Anfragen genutzt und gestattet Ihnen, Konfigurationen Ihrer Anwendung zentral zu definieren. Für die Hallo Welt!-Anwendung wird keine weitere Konfiguration benötigt.

Um dem Benutzer einen Einstiegspunkt anzubieten, erstellen bitte Sie nun eine Datei mit dem Namen index.php parallel zum Ordner APF aus der apf-codepack-*-Datei. Der Ordner unterhalb des DOCUMENT_ROOT ihres Webservers sollte damit folgende Struktur aufweisen:

Code
APF/ core/ extensions/ modules/ tools/ index.php

Der minimal notwendige Inhalt einer Bootstrap-Datei ist im Kapitel Grundlagen beschrieben. Für unseren Anwendungsfall kann der dort aufgezeigte Code direkt übernommen werden. Der Inhalt gestaltet sich daher wie folgt:

PHP-Code
include('./APF/core/bootstrap.php'); use APF\core\singleton\Singleton; use APF\core\frontcontroller\Frontcontroller; $fC = Singleton::getInstance(Frontcontroller::class); echo $fC->start('...', '...');

Die Argumente der Methode start() sind nun abhängig von der Struktur unserer Applikation. Diese wird im folgenden Kapitel festgelegt.

4. Erstellen des Templates

Jede Webseite bzw. Applikation, die mit dem APF erstellt wird basiert auf einem initialen Template. Im Fall unserer Hallo Welt!-Anwendung ist dieses gleichzeitig für die Ausgabe des Inhalts zuständig. In komplexeren Anwendungsfällen können dort weitere Teile statisch oder dynamisch eingebunden werden.

Wie im Kapitel Laden von Klassen beschrieben wird, werden PHP-Klassen, Templates und Konfigurations-Dateien immer absolut adressiert. Für unser Beispiel bedeutet dies, dass das erste Argument der Methode start() in der Bootstrap-Datei den Namespace des Templates und der zweite den Namen des Templates ohne Datei-Endung erwartet.

Um die Code-Basis einer Applikation bzw. eines Webseiten-Projekts übersichtlich zu gestaltet wird empfohlen für Ihre Applikation bzw. Webseite einen eigenen Namespace-Bereich zu schaffen. Für die weiteren Code-Beispiele soll dieser Bereich den Namen world heissen. Unterhalb von world legen wir nun einen Ordner templates an, der alle Templates der Anwendung beinhalten soll. Die Ordner-Struktur ergänzt sich damit wie folgt:

Code
APF/ core/ extensions/ modules/ tools/ world/ templates/ index.php

Unser initiales Template soll den Namen main.html tragen. Damit können wir die index.php wie folgt vervollständigen:

PHP-Code
include('./APF/core/bootstrap.php'); use APF\core\singleton\Singleton; use APF\core\frontcontroller\Frontcontroller; $fC = Singleton::getInstance(Frontcontroller::class); echo $fC->start('APF\world\templates', 'main');

Legen Sie nun die Datei main.html im Ordner APF/world/templates/ an und füllen diese mit dem gewünschten Inhalt (z.B. Hallo Welt!) und rufen die index.php auf. Sie sehen nun den Inhalt Ihrer Template-Datei im Browser.

Die vorgestellte Ordner-Struktur für Ihre Applikation ist lediglich eine Orientierungshilfe und kann von Ihnen frei definiert werden. Um Probleme bei Updates der APF Code-Basis zu vermeiden, sollten Sie Komponenten Ihrer Anwendung nicht in den Ordnern core, tools, modules bzw. extensions ablegen.

5. Hallo Welt! für Fortgeschrittene

In den Kapiteln 3 und 4 haben Sie bereits eine lauffähige Applikation erstellt. Um die Ausgabe etwas dynamischer zu gestalten, soll die ausgegebene Begrüßung über einen URL-Parameter steuerbar sein. Hierzu definieren wir zunächst in unserem Template einen Platzhalter (verfügbare Tags siehe Standard TagLibs):

APF-Template
Hallo <html:placeholder name="name"/>!

Der Platzhalter name soll nun dynamisch und an Hand gleichnamigen URL-Parameters gefüllt werden. Für dynamische Ausgaben lassen Sich im APF (Document-)Controller einsetzen.

Um einen Controller für ein Template zu definieren, muss dieses wie folgt erweitert werden:

APF-Template
<@controller class="APF\world\controller\SayHelloController" @> Hallo <html:placeholder name="name"/>!

Wie Sie der Code-Box entnehmen können wir die PHP-Klasse absolut und mit ihrem Namespace angegeben.

Die Implementierung des Controllers gestaltet sich wie folgt:

PHP-Code
namespace APF\world\controller; use APF\core\pagecontroller\BaseDocumentController; class SayHelloController extends BaseDocumentController { public function transformContent() { $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : 'Welt'; $this->setPlaceHolder('name', $name); } }

Die erste Zeile der Methode transformContent() definiert den auszugebenden Namen. Sofern der URL-Parameter name vorhanden ist wird der dort vorhandene Inhalt genutzt, in allen anderen Fällen wird der Standard-Wert Welt genutzt. Die zweite Zeile füllt den Platzhalter name mit dem zuvor evaluierten Namen.

Rufen Sie nun die index.php mit dem URL-Parameter name und dem Wert Harry auf, so begrüßt Sie die Webseite mit Hallo Harry!.

Mehr zur Implementierung und Nutzung von Controllern finden Sie im Kapitel (Document-)Controller.

6. Weiterführende Kapitel

Das Tutorial Erstellen einer Webseite zeigt einfaches Beispiel zur Erstellung einer Webseite. Der Foren-Beitrag APF-Modul erstellen und der Artikel Objektorientierte Implementierung eines Gästebuchs zeigen komplexere Beispiele für Applikationen.

Sofern Sie weitere Einsteiger-Inhalte suchen, hilft Ihnen das Tutorial Download, Installation und erste Schritte weiter.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.