Download, Installation und erste Schritte

Download, Installation und erste Schritte

1. Einleitung

In diesem Tutorial wird Schritt für Schritt erklärt, wie man das Adventure PHP Framework (kurz APF) einrichtet.

2. Anforderungen

Es wird davon ausgegangen, dass ein PHP fähiger Server zur Verfügung steht. Für einen lokalen Testserver unter Windows eignet sich XAMPP sehr gut. Es beinhaltet eine Installation aller wichtigen Serverkomponenten, wie Apache, PHP, MySQL, etc. Je nachdem wie euer System aufgebaut ist, müssen die Pfade angepasst werden. Auf LINUX/UNIX könnt ihr die PHP Bibliotheken mit dem favorisierten Paket-Manager direkt installieren.

3. Download

Unter Downloads findet man stets die aktuellste Version des APF. Zum Zeitpunkt der Erstellung des Tutorials ist dies die Version 1.10.

Bei den Release-Dateien wird zwischen folgenden Paket-Typen unterschieden:
  • Beispiel-Projekt: (apf-demopack-*):
    Enthält die notwendigen APF Dateien, sowie einige Anwendungsbeispiele. Dieses Paket ist speziell für Einsteiger gedacht.
  • Framework-Code-Release: (apf-codepack-*):
    Enthält die notwendigen APF Dateien. Dieses Paket ist für den Produktiveinsatz gedacht.
  • Beispiel-Konfigurationsdateien: (apf-configpack-*):
    Enthält nur Konfigurationsdateien für einige Module des APF, an denen man sich bei der Erstellung seiner Konfigurationen orientieren kann.
Für dieses Tutorial wird das Framework-Code-Release verwendet, welches Sie nun herunterladen können.

4. Installation

Zuerst ist es wichtig die Ordnerstruktur zu verstehen. Im Tutorial wird davon ausgegangen, dass der Document-Root (der Ordner der geöffnet wird wenn man http://localhost/ im Browser aufruft) unter /xampp/htdocs liegt.

Das APF ist so aufgebaut, dass nur eine einzige Datei (Bootstrap Datei) aufgerufen wird. Der Rest wird über URL-Parameter gesteuert. Für die Bootstrap Datei (z.B. index.php) legen wir die Ordner /xampp/htdocs/APF/sites/helloworld/ an. Hier werden außerdem öffentlich zugängliche Dateien platziert (z.B. Bilder).

Aus Sicherheitsgründen sollten die Dateien des APF nicht öffentlich zugänglich sein, denn sonst können Konfigurationsdateien einfach von außen gelesen werden. Die sicherste Variante ist es, wenn man die Dateien des APF oberhalb des Wurzelverzeichnisses ablegt. Sollte dies aus irgendeinem Grund (wie z.B. einem Webspace, bei dem man nur Zugriff auf das Wurzelverzeichnis hat) nicht möglich sein, fahren Sie bei Punkt 4.2 fort, wo eine zusätzliche Sicherung erstellt wird, um den Zugriff von außen zu unterbinden, andernfalls folgen Sie den Anweisungen aus 4.1.

4.1. Installation außerhalb des Root-Verzeichnisses

Da das Root-Verzeichnis unter /xampp/htdocs/ liegt, legen wir das Verzeichnis /xampp/APF/ an. Jetzt öffnen wir das zuvor heruntergeladene Paket, und entpacken es in das eben erstellte Verzeichnis.

Jetzt sollte man folgende Ordnerstruktur vorfinden:
Code
/xampp/APF/apps/ core/ modules/ tools/
Wenn dem so ist, kann Punkt 4.2 übersprungen werden.

4.2. Installation innerhalb des Root-Verzeichnisse

Hierbei muss darauf geachtet werden, dass der Ordner in dem sich die APF Dateien befinden vor dem Zugriff von außen geschützt werden muss. Wir haben ja schon das Verzeichnis /xampp/htdocs/APF/ angelegt. Dort entpacken wir jetzt die zuvor heruntergeladene Datei. Jetzt sollte die Ordnerstruktur
Code
/xampp/htdocs/APF/apps/ core/ modules/ tools/
vorhanden sein.

Um das Verzeichnis vor dem Zugriff von außen zu schützen, legen wir die Datei .htaccess unter /xampp/htdocs/APF/apps/ an:
Shell
# Zugriff von außen unterbinden Order allow,deny deny from all
Beim übertragen der .htaccess Datei via FTP muss die übertragungsmethode auf ASCII gestellt werden, andernfalls kann es zu Problemen kommen.

5. Erste Schritte

Der Einfachheit wegen wird ab sofort auf den kompletten Pfad verzichtet. /apps/ ist ab jetzt der geschützte APF Ordner, und /APF/ der öffentlich zugängliche Ordner.

Zuerst eine kurze Erklärung der einzelnen Ordner:
  • /apps/core/: Hier befinden sich alle Systemdateien des APF, welche zwingend notwendig sind.
  • /apps/modules: Hier befinden sich optionale Module, welche das APF mitliefert. Diese müssen jedoch erst konfiguriert werden. Wie das geht kann unter den Tutorials auf der Übersichts-Seite der vorhandenen Module eingesehen werden.
  • /apps/tools: Hier findet man viele kleinere Tools welche man verwenden kann.
Jetzt legen wir die Datei /APF/sites/helloworld/index.php an. Wir werden eine einfache "Hallo Welt" Applikation schreiben, um die Funktionalität zu erklären.

Im Folgenden wird der Begriff Namespace statt der Bezeichung Ordner verwendet. Das hat folgenden Hintergrund: der Namespace ist eine relative Adressierung vom /apps Ordner aus. Beim Namespace müssen alle "/" im Ordner-Pfad durch "::" ersetzt werden.

Es muss nun der Namespace für das Template erstellt werden. Hierzu legen wir die Ordner /apps/sites/helloworld an. Darin werden die Ordner /pres/templates angelegt. Da das APF auf einem 3 Schichten Modell aufbaut (Präsentation, Verwaltung und Daten), steht das pres hier für die Präsentationssschicht, in der unter dem Ordner /templates die .html Templates gespeichert werden. Wir benötigen für dieses Beispiel nur ein einziges Template:
APF-Template
helloworld.html
In dieses Template schreiben wir jetzt einfach folgenden Inhalt:
APF-Template
Hallo Welt! Hello World!
Jetzt editieren wir die zuvor angelegte index.php. Sie bekommt folgenden Inhalt (Erklärung folgt darunter):
PHP-Code
// Page-Controller einbinden (für den unter 4.1 konfigurierten Ordner) include_once('../../../APF/apps/core/pagecontroller/pagecontroller.php'); // Page-Controller einbinden (für den unter 4.2 konfigurierten Ordner) //include_once('../../apps/core/pagecontroller/pagecontroller.php'); // Front-Controller erzeugen und konfigurieren import('core::frontcontroller', 'Frontcontroller'); $fC = &Singleton::getInstance('Frontcontroller'); // Request-Abarbeitung starten und Ergebnis zum Client senden echo $fC->start('sites::helloworld::pres::templates', 'helloworld');

Zuerst wird der Page- und Front-Controller eingebunden. Hier muss die Variante gewählt werden, die bei der Installation verfolgt wurde. Als nächstes wird der Front-Controller erzeugt. Daraufhin wird das Template welches wir eben erstellt haben als Start-Template übergeben und der Front-Controller gestartet. Der erste Parameter ist dabei der Namespace, der zweite Parameter dann der Pfad zum Template, und der Name der Templatedatei. Namen werden im APF immer ohne die Dateiendung angegeben, da die Konvention des Frameworks schon sagt, wie diese lauten müssen (*.html für Templates, *.ini für Konfigurationsdateien, *.php für PHP-Dateien). Zuletzt per echo die erzeugte Seite ausgegeben.

Die genaue Funktionsweise des Front-Controller kann unter Front-Controller nachgelesen werden.

Um das Ergebnis zu betrachten rufen wir

Code
http://localhost/APF/sites/helloworld/index.php
auf. Dort sollte nun Hallo Welt! Hello World! erscheinen.

6. Fazit

Jetzt sollte die grundlegende Funktionalität des APF bekannt sein. Um die vielen anderen Funktionen kennenzulernen, empfiehlt es sich noch ein paar weitere Tutorials zu lesen. Als nächstes Tutorial schlage ich das Erstellen einer Webseite vor.
Ralf Schubert findet das APF genial!

Dieser Artikel wurde exklusiv für adventure-php-framework.org geschrieben.

Über den Autor:

Ralf Schubert ist begeisterter APF-Entwickler. Für ihn bietet es viele Vorteile gegenüber anderen Frameworks. Besonders gerne nutzt er die einfach Möglichkeit, wiederverwendbare Elemente zu erstellen.

Um Neueinsteiger bei der Verwendung des APF zu unterstützen hat er ein Tutorial verfasst. Darin werden die ersten Schritte mit dem Framework erklärt.

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.
« 1   »
Einträge/Seite: | 5 | 10 | 15 | 20 |
1
Ralf Schubert 14.07.2011, 12:40:49
Hi Christian (#5),
Die Ordnerbezeichnung ist durchaus korrekt, wenn auch möglicherweise etwas verwirrend.

In Schritt 4 wird zu Beginn der Ordner /xampp/htdocs/APF/sites/helloworld/angelegt, darin muss die index.php platziert werden. Dieser Ordner wird später von außen für Besucher zugänglich sein.

Der /apps/ Ordner wird entweder außerhalb des zugänglichen Bereiches (Schritt 4.1) oder aber mit .htacces geschützt innerhalb des zugänglichen Bereiches (Schritt 4.2) erstellt, und enthält die internen Dateien des APF, sowie alle Seitenrelevanten Dateien. Da diese nicht direkt aufgerufen werden sollen, liegen diese in einem extra Ordner.

Daher ist der Aufruf von http://localhost/APF/sites/helloworld/index.php in diesem Fall korrekt, hier liegt unsere Bootstrap Datei.

Du kannst die index.php natürlich auch direkt unter http://localhost/APF/index.php anlegen, sofern du den Pfad zum APF darin anpasst.

Ich hoffe dir ist damit geholfen :)

Grüße
Ralf
2
Christian Achatz 09.07.2011, 16:17:36
Hallo Christian,

korrekt, die Pfad-Bezeichnung ist nicht konsistent, danke für den Hinweis. Wird demnächst behoben...
3
Christian 18.06.2011, 15:47:37
Hier ist die Rede von einem apps Verzeichnis in dem der sites Ordner erstellt werden soll:
/apps/sites/helloworld

Später wird allerdings eine andere URL aufgerufen:
http://localhost/APF/sites/helloworld/index.php
4
Christian 20.01.2010, 15:24:55
Hallo Detlef,

das kannst du erreichen, in dem du in deiner Apache-Konfiguration ein Alias auf das gewünschte Verzeichnis legst (Alias /my-app /path/to/my-app) oder einen dedizierten VHOST erstellst.

Zudem empfiehlt es sich für eine zentrale Entwicklung, die immer wieder benötigten Elemente per junction (Windows) oder symlink (LINUX/UNIX) in den jeweils genutzten Arbeits-Ordner zu linken.
5
Detlef 20.01.2010, 08:50:13
Ihr schreibt:
Da das Root-Verzeichnis unter /xampp/htdocs/ liegt, legen wir das Verzeichnis /xampp/APF/ an.

Und weiterhin:

Um das Ergebnis zu betrachten rufen wir
1. http://localhost/APF/sites/helloworld/index.php

Da jedoch die Root unter /xampp/htdocs/ zu finden ist, erhält man (zumindest ich) einen 404 Fehler.

Was muss ich machen, damit das APF auch außerhalb der Root funktioniert?

Viele Grüße - Detlef
6
Screeze 20.10.2009, 18:07:22
Hi,
die Fehler werden ausgebessert.
Natürlich muss da der namespace nicht unbedingt gesetzt werden.
Aber um die möglichkeit zu geben mehrere versch. einzelseiten (die unabhängig voneinander sind) habe ich mir angewöhnt diese schachtelung vorzunehmen. (gerade bei neulingen, die mehrere sachen testen, oder auf dem lokalen entwicklungsserver)
Normal setze ich dann einen vhost auf diesen Ordner, aber das würde zu weit gehen.

Screeze
7
BazzRah 15.10.2009, 18:50:49
Punkt 2:
- müssen die Pfade werden angepasst werden

Punkt 4.4:
- Es gibt keinen Punkt 4.2. ... ??

/APF/sites/helloworld/index.php ->
Warum sollte ich eine Bootstrap-Datei nochmal in den Namespace unterhalb des htdocs schachteln? Das macht doch nur den Aufruf unnötig kompliziert; oder gibt es dafür einen vernünftigen Grund.