Erste Schritte¶
Die Ignition-Klasse sorgt zusammen mit den einzelnen Units und den Steuerdateien assembly.ini und system.ini für eine geeignete Startumgebung für die Anwendung. So werden Komponenten geladen, Umgebungsvariablen gesetzt und Einstellungen zur Fehlerdarstellung gemacht.
Außerdem fängt Ignition Exeptions ab und informiert den Benutzer über grundlegende Fehler.
Nach dem erfolgreichen Download des Dispatcher-Phar erstellt man in dem gleichen
Verzeichnis eine Startdatei mit dem Namen run.php
mit folgendem Inhalt an:
try {
/**
* Wrapper-Funktion um den Namespace sauber zu halten.
*/
\call_user_func(function() {
/**
* Das Dispatcher-Phar liegt im gleichen Verzeichnis, alternativ
* muss der Pfad hier angepasst werden.
*/
$vendorDispatcherPath=__DIR__.\DIRECTORY_SEPARATOR.'alvine.dispatcher.phar';
/**
* Name des Konfigurationsverzeichnisses
* Die Konfiguration wird in diesem Fall
* unter /etc/my-application gesucht. Alternativ
* kann die Umgebungsvariable MY_APPLICATION_CONFIG
* gesetzt werden.
*/
$configName = 'my-application';
if(\file_exists($vendorDispatcherPath)) {
include 'phar://'.$vendorDispatcherPath.'/source/Ignition.class.php';
}
/** Ignition kann nicht gestartet werdebn */
if(!\class_exists('\Alvine\Dispatcher\Ignition')) {
echo "Fatal Error.\n";
exit(255);
return false;
}
try {
\Alvine\Dispatcher\Ignition::getInstance()
->initIniFiles($configName)
->runUnits();
} catch(\Exception $e) {
\Alvine\Dispatcher\Ignition::getInstance()->handleException($e);
}
});
/**
* Der integrierten PHP-Webserver erwartet false, in dem Fall, das
* er eine statische Resource ausliefern soll. Im Standardfall wird return null
* zurückgegeben.
*/
return \Alvine\Dispatcher\Ignition::getInstance()->handleExit();
} catch(\Exception $e) {
echo "Failure\n";
exit(255);
return false;
}
Im Anschluß muss das Konfigurationsverzeichnis - in diesem Beispiel /etc/new-application
angelegt werden. Alternativ kann auch ein anderes Verzeichnis gewählt werden. Dann muss der
Pfad auf dieses Verzeichnis explizit in der Umgebungsvariable MY_APPLICATION_CONFIG
gesetzt werden.
Der Name der Umgebungsvariable leitet sich aus dem Projektnamen ab. Dabei werden alle Bindestriche -
druch einen
Unterstrich _
ersetzt, alle Buchstaben zu Grossbuchstaben und ein _CONFIG
angehängt.
Das Fehlerlogging in diesme Stadium erfolgt je nach Verfügbarkeit in folgenden Verzeichnissen:
- In der system.ini definiertes Verzeichnis
- Verzeichnis aus der Umgebungsvariable
_CONFIG_LOG
- Homeverzeichnis des Benutzers
- Systemverzeichnis über die Methode
sys_get_temp_dir
Alternativ kann die Einrichtung auch über das Script initDispatcher.php
erfolgen.
Usage: initDispatcher.php [options] -p --project Name des Projektes (Erlaubte Zeichen: a-zA-Z0-9-) -b --basepath Basisverzeichnis für die Installation; default ist das aktuelle Verzeichnis) -c --component Zu ladende Alvine-Komponente (z.B. alvine.framework-snapshot.phar)
Folgender Aufruf erstellt ein neues Projekt mit dem Namen my-application
:
8c12eaa9-754b-406b-e662-0952166898e7
Die Verzeichnisstruktur sieht im Anschluß folgendermassen aus:
my-application ├── bin │ └── new-application.sh ├── etc │ └── new-application │ ├── cli │ ├── generally │ ├── http │ └── system.ini ├── log │ └── new-application ├── opt │ ├── new-application │ │ ├── default │ │ │ ├── assembly.ini │ │ │ └── assembly.properties │ │ ├── dispatcher │ │ │ ├── alvine.dispatcher-snapshot.phar │ │ │ ├── alvine.dispatcher-snapshot.phar.pubkey │ │ │ └── run.php │ │ └── source │ │ └── Command.class.php │ └── vendor │ └── alvine │ ├── alvine.application-snapshot.phar │ ├── alvine.application-snapshot.phar.pubkey │ ├── alvine.framework-snapshot.phar │ └── alvine.framework-snapshot.phar.pubkey ├── srv │ └── new-application ├── tmp │ └── new-application └── var └── new-application
Voila! Ignition ist eingerichtet.