Pfade innerhalb der Anwendung

Jede Anwendung verwendet verschiedene Pfade zum Speichern von Informationen. Es gibt Pfade für das Speichern der Logdateien, Pfade für Bilder, CSS-Dateien und JS-Dateien.

Jede Anwendung verfügt zumindest über den Basispfad. Dieser kann über die Funktion Locations::getBasePath() geholt werden.

Die Pfade werden - bei der Verwendung des Dispatchers in der system.ini festgelegt.

Die Klassen Alvine\Application\Configuration\Locations\Console, Alvine\Application\Configuration\Locations\Assembly und Alvine\Application\Configuration\Locations\Web stellen Pfade für den jeweiligen Typen einer Anwendung bereit.

uml diagram

Die Verknüpfung einer Anwendungsinstanz mit einem Location-Objekt erfolgt über die Methode Assembly::getLocations(). In der Standardimplementierung verwendet diese Methode die Klassenkonstante LOCATIONS_CLASS um die zu verwendende Klasse zu definieren.

Soll eine eigene Locations-Klasse verwendet werden, so kann im einfachsten Fall, die Konstante LOCATIONS_CLASS in der abgeleitete Anwendungklassen mit dem Namen der gewünschten Locations-Klasse gesetzt werden.

Soll im Konstruktor der Locations-Klasse ein weiterer Wert übergeben werden, so kann man die Methode Assembly::initLocationsInstance() überschreiben.

protected function initLocationsInstance(): \Alvine\Application\Assembly {
    $class=$this->getLocationsClass();
    $this->locations=new $class($this->facility, 'My Value!');
    return $this;
}

Der Aufruf in der Anwendung erfolgt folgendermaßen:

uml diagram