DummyWeb
class DummyWeb extends Web
Testklasse für Unit-Tests
Constants
DEFAULTSTORAGEHANDLER |
Klassenname des Default-Handlers |
DEFAULTSTORAGEINDEXHANDLER |
Klassenname des Default-Handlers dex Indexers |
UUID |
Default UUID dieser Klasse |
DEFAULT_NAME |
Name der Default-Konfigurationsdatei |
PLACEHOLDER_CONFIGPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_DEFAULTPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_ASSETSPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_BASEPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_LICENCEPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_DATAPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_CUSTOMISATIONPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_REPOSITORYPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_VENDORPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_RESOURCEPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_LOGPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_TEMPPATH |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_APPLICATIONID |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
PLACEHOLDER_LANGUAGE |
Mapping der Methode Alvine\Application\Assembly::getPlaceholderMap |
Properties
protected Facility | $facility | from Assembly | |
protected Node | $configuration | from Assembly | |
protected Directory | $defaultPath | Im default-Verzeichnis liegen die Standard-Konfigurationsdateien. | from Assembly |
protected Directory | $basePath | Der Basispfad der Anwendung | from Assembly |
protected Directory | $vendorPath | from Assembly | |
protected Directory | $dataPath | from Assembly | |
protected Directory | $customisationPath | from Assembly | |
protected Directory | $assetPath | Unter Assets werden Mediadateien wie Grafiken oder CSS-Dateien abgelegt. | from Assembly |
protected Directory | $classPath | Der Klassenpfad der Anwendung | from Assembly |
protected Directory | $configPath | Im config-Verzeichnis liegen die Konfigurationsdateien der Anwendung Dieser Pfad zeigt auf die Konfiguration der Facility. | from Assembly |
protected Directory | $logPath | from Assembly | |
protected Directory | $licensePath | Lizenzdateien | from Assembly |
protected Directory | $repositoyPath | Speicherort für Objekte | from Assembly |
protected Directory | $resourcePath | Resourcen | from Assembly |
static protected ObjectMap | $instance | Einzige Objektinstanz (singelton) der Anwendung | from Assembly |
static protected CacheManager | $cacheManager | from Assembly | |
protected View | $view | from Assembly | |
protected Examiner | $cacheExaminer | from Assembly | |
protected EventQueue> | $volatileEventQueues | from Assembly | |
protected Locale | $locale | from Assembly | |
protected Manager | $storageManager | from Assembly | |
protected SMTPClient | $defaultSmtpClient | from Assembly | |
protected Session | $session | from Web | |
protected Directory | $webPath | from Web | |
protected Directory | $errorPath | from Web | |
protected Directory | $jsPath | from Web | |
protected Directory | $themePath | from Web | |
protected Directory | $publicVendorPath | from Web | |
protected Directory | $w3cPath | from Web | |
protected URI | $baseURI | from Web | |
protected Request | $request | from Web | |
protected Route | $router | from Web | |
protected Identity | $identity | from Web | |
protected Authority> | $authorities | from Web | |
protected Cookie> | $cookies | from Web | |
protected string | $requestID | from Web |
Methods
Eventqueue für Event holen und wenn noch nicht vorhanden anlegen
Instanz ermitteln. Wird keine Instanzklasse angegeben, so wird das aktuelle Objekt in der Instanz-Map verwendet.
Standardplatzhalter der Anwendung
Diese Methode liest einen Konfigurationswert aus.
Instanz des Storage-Manager holen und Referenz in der Anwendung speichern
Ein Storageobjekt registrieren.
Handler für den entsprechenden Speichertyp
Diese Methode berechnet einen eindeutigen Wert für eine Anwendung. Da jede Anwendung nur eine Instanz haben kann, muss dieser Wert nur zu Klasse hin eindeutig sein.
Finalize deaktiviert, da die Klasse sonst nicht zu testen. Ggf besser Lösung erarbeiten
Versuchen die Lokale über den Header zu setzen
Versuchen die Lokale über den Request zu setzen
Versuchen die Lokale über ein Cookie zu setzen
Überprüfen des Benutzernamens und des Passwortes
Identität aus Request ermitteln. Es wird nach den POST-Variablen username und password gesucht. Akternativ können diese in der Konfiguration mittels der Eigenschaften
Identität aus dem Body holen
Authentifiaction von WWW-Authentification
Diese Methode liest entweder aus der Session oder aus der POST-Variable username den Namen der angefragten Identität aus.
Diese Methode wird im Rahmen der Task-Bearbeitung (wenn nicht anders konfiguriert) aufgerufen und übergibt den Request an die im Routing definierten Presenter.
Session Definition
Lädt eine Session oder erstellt diese neu. Der Name der Klasse und der Name des Cookies, in dem die Session-ID gespeichert wird, kann über die Konfiguration gesteuert werden.
Diese interne Methode wird von Web::initSession() aufgerufen und lädt eine Session aus dem gegebenen Storagesystem. Für andere Storagesysteme muss diese Methode überschrieben werden.
Session schreiben. Für andere Storagesysteme muss diese Methode überschrieben werden.
No description
Details
in Web at line 133
protected
__construct(Facility $facility)
Neues Anwendugs-Objekt erstellen.
Der Konstruktor erstellt ein neues Objekt und initialisiert die Systeminstanzen für Environment, Encoding, System und Math. Außerdem wird der Anwendung ein SystemLogger und ein Mailserver zugewiesen.
in Web at line 144
__destruct()
Anwendung beenden
in Assembly at line 354
protected EventQueue
getEventQueue(Event $class)
Eventqueue für Event holen und wenn noch nicht vorhanden anlegen
in Assembly at line 377
Assembly
subscribeEvent(Subscriber $subscriber, string $eventClass)
Event abonnieren
in Assembly at line 390
Assembly
unsubscribeEvent(Subscriber $subscriber, string $eventClass)
Abmelden
in Assembly at line 412
bool
shouldBeCached()
Soll die Anwendung cachen
in Assembly at line 421
Locale
getLocale()
Lokale der Anwendung
in Assembly at line 456
static Assembly
execute(Facility $facility)
Programm ausführen
Die execute-Methode sucht nach der gewünschten Anwendung, erstellt ein Objekt der Anwendung, initiert dadurch die Konfiguration und ruft im Anschluß den Taskhandler auf.
Über die optinalen Parameter $namespace und $path können im ersten Aufruf die Anwendungsklassen inititalisiert werden. Bei weiteren Aufrufen, muss dies nicht mehr erfolgen. Der Namespace kann aber auch normal im AutoLoader registriert werden.
Der Task-Handler sorgt dafür, das die in der Konfiguration aufgeführten Task der Reihe nach ausgeführt werden. Durch die Flexibilität der Tasks, können in der konkreten Anwendung unterschiedliche Szenarien implementiert werden.
application.task=init
application.task=render
Über den Anwendungsmodus können bestimmte Regeln definiert werden. So wird der Anwendungscache nur im Produktivsystem aktiviert.
in Assembly at line 535
static Assembly|null
getInstance(string $assemblyClass = null)
Instanz ermitteln. Wird keine Instanzklasse angegeben, so wird das aktuelle Objekt in der Instanz-Map verwendet.
Wird kein Assembly gefunden, so wird null zurückgegeben.
in Assembly at line 555
boolean|Assembly
validateInstanceCache()
Meßwerte überprüfen
Mit dieser Methode kann die Anwendung prüfen, ob die zwischengespeicherte Anwendung noch aktuell ist. Abgeleitetet Anwendungen müssen die Methode Application::initCacheExaminer() um die Werte erweitern, die für einen aktuelle Anwendung wichtig sind.
in Web at line 337
protected Assembly
initCacheExaminer()
Instanzprüfung erweitern
Die Webklasse überwacht im Standard zusätzlich zur Anwendungskonfiguration noch das routing-Verzeichnis.
Ist ein anderes Verhalten gewünscht, oder wird der Default-Router nicht verwendet, so muss diese Methode von der konkreten Klasse überschrieben werden.
in Assembly at line 599
boolean
isInstanceValide()
Gültigkeit prüfen
Prüfen ob die Daten der Instanz noch gültig sind.
in Assembly at line 614
static
refresh(string $assemblyClass)
Anwendungsklasse aktualisieren
Mit dieser Methode wird der Zwischenspeicher der Anwendungsklasse geleert. Beim nächsten Aufruf von Assembly::execute wird das Objekt für diese Klasse neu erstellt.
in Assembly at line 653
static CacheManager
getCacheManager()
AppCache zur Beschleunigung von Anfragen
Diese Methode gibt den Anwendungscache zurück. Im Standard ist das temporäre Verzeichnis definiert. Dies sollte in der abgeleiteten Klasse durch eine schnellere Variante (z.B. Memcache) ersetzt werden.
Für Testzwecke und während der Entwicklung einer Anwendung kann diese Methode null zurückgeben. In diesem Fall wird kein Anwendungscache verwendet.
in Assembly at line 676
protected Assembly
loadConfig()
Konfiguration laden
Diese Methode lädt die Konfiguration der Anwendung. Je nach Dateierweiterung wird eine von \Alvine\Types\Properties abgeleitete Klasse geladen. Für die Erweiterung .properties wird ein Objekt der Klasse \Alvine\Application\Configuration\Properties erstellt, für eine Endung .txt würde die Klasse \Alvine\Application\Configuration\Text initiert werden.
in Web at line 298
Map
getPlaceholderMap()
Standardplatzhalter der Anwendung
in Assembly at line 774
Directory
getCustomisationPath()
CustomisationPath
in Assembly at line 783
Directory
getDataPath()
Daten
in Assembly at line 794
string
replaceEnvironmentPlaceholder(string $string)
Standardplatzhalter der Anwendung
in Web at line 351
protected
initDirectories()
Setzt den Basispfad und alle abgeleiteten Pfade
Diese Methode initialisiert die Pfade für die Assets, die Classes, Config, Vendors, Ressources und Views.
in Assembly at line 903
protected Assembly
initSMTPClient()
Mailclient initialisieren
Initialisierung des Standard-Mail-Clients. Die Konfiguration erfolgt über die Eigenschaften application.mail.delivery.** (siehe auch assembly.config)
application.mail.delivery.default.class Klasse, die den Versand übernimmt (von SMTPClient abgeleitet) application.mail.delivery.default.server IP, oder Hostname des Mailservers (Standard ist localhost) application.mail.delivery.default.port IP-Port des SMTP-Servers (Standard ist 25)
in Assembly at line 953
SMTPClient|null
getDefaultSmtpClient()
SMTP-Client
in Assembly at line 967
protected Assembly
initLogger()
Logging initialisieren
Inititalisierung des Standardloggers für das Logging. Die Konfiguration erfolgt über die Eigenschaften application.logging.**. Der Logger muß von der Klasse \Alvine\Util\Logging\Logger abgeleitet sein. Für die Verarbeitung können die Handler über die Konfigurationsschlüssel
in Assembly at line 1020
Properties
getConfiguration()
Konfiguration zurückgeben
Liefert eine Kopie der Konfigurations. Änderungen in dem Objekt haben keine Auswirkungen auf die Anwenndung.
in Assembly at line 1037
string
getConfigurationValue(string $key, string $default = null)
Diese Methode liest einen Konfigurationswert aus.
Ist der Schlüssel nicht angegeben, so wird der Default-Wert zurückgegeben.
Wird ein Teilschlüssel angegeben, so wird ebenfalls der Defaultwert zurückgegeben.
in Assembly at line 1073
protected $this
initPersistenceManager()
Instanz des Storage-Manager holen und Referenz in der Anwendung speichern
in Assembly at line 1083
protected Assembly
initStorage()
Initialisiert die Struktur für den Objektspeicher.
in Assembly at line 1101
Assembly
initStorageIndex()
Initialisiert die Struktur für den StorageIndex.
in Assembly at line 1127
Assembly
registerStorage(string $className, ObjectStorage $storage)
Ein Storageobjekt registrieren.
in Assembly at line 1139
Assembly
unregisterStorage(string $className)
Registrierung für eine Klasse aufheben
in Assembly at line 1160
Alvine
getObject(string $className, string $id)
Objekt aus dem Storage auslesen
Diese Methode liest ein Objekt aus dem in der Konfiguration definierten Speicher aus. Der Klassenname muss mit führendem \ und vollem Namensraum angegeben werden.
in Assembly at line 1180
Subset
findObject(string $className, Query $query)
Nach einem Objekt suchen
Die Suche erfolgt in dem in der Konfiguration definierten Indexer. Der Indexer gibt eine Ergebnismenge zurück. Diese Methode holt sich die ID des Ergebnisses und verwendet die Methode getObject um das echte Objekt zu laden.
in Assembly at line 1194
protected ObjectStorage
getPersistenceHandler(string $className, string $mode)
Handler für den entsprechenden Speichertyp
in Assembly at line 1203
Manager
getStorageManager()
Storage-Manager
in Assembly at line 1217
Assembly
deleteObject(Alvine $object)
Objekt aus dem Storage löschen
Diese Methode löscht ein Objekt aus dem in der Konfiguration definierten Speicher.
in Assembly at line 1232
Assembly
writeObject(Alvine $object)
Objekt in den definierten Speicher schreiben
Das übergebene Objekt wird serialisierten und in den angegebenen Speicher geschrieben.
in Assembly at line 1247
string
getHashCode()
Diese Methode berechnet einen eindeutigen Wert für eine Anwendung. Da jede Anwendung nur eine Instanz haben kann, muss dieser Wert nur zu Klasse hin eindeutig sein.
Der Anwendungscache verwendet die ID um die Instanz der Anwendung zwischenzuspeichern. Diese Methode sollte deshalb von abgeleiteten Klassen nicht überschrieben werden.
in Web at line 439
protected Assembly
init()
Initialisierung der Anwendung
Diese Methode wird im Rahmen der Task-Bearbeitung (wenn nicht anders konfiguriert) aufgerufen und initialisiert die Anwendung
at line 45
protected Assembly
finalize()
Finalize deaktiviert, da die Klasse sonst nicht zu testen. Ggf besser Lösung erarbeiten
in Assembly at line 1280
protected Application
handleTasks()
Abarbeiten der in der Config definierten Tasks
in Assembly at line 1332
Directory
getRepositoyPath()
Speicherort für Daten
in Assembly at line 1341
Directory
getVendorPath()
Verzeichnis für Fremdanbieterdateien aus dem Backend
in Assembly at line 1350
Directory
getLicensePath()
Verzeichnis mit Lizenzen
in Assembly at line 1359
Directory
getDefaultPath()
Verzeichnis der Konfigurationsdateien
in Assembly at line 1368
Directory
getConfigPath()
Verzeichnis der Konfigurationsdateien
in Assembly at line 1377
Directory
getAssetPath()
Assets-Verzeichnis
in Assembly at line 1386
Directory
getBasePath()
Basisverzeichnis
in Assembly at line 1395
Directory
getClassPath()
Code-Verzeichnis
in Assembly at line 1404
Directory
getResourcePath()
Verzeichnis mit Resourcen
in Assembly at line 1431
File
getResourceFile(string $filename)
Resourcen-Datei-Objekt zurückgeben
Die Methode sucht entweder im Resourcen-Verzeichnis der Anwendung oder im Absoluten-Pfad nach der Resourcen-Datei. Ist der Dateiname eine http-Resource so wird die Datei geladen und in eine temporäre Datei gespeichert. Dieses Dateiobjekt wird zurückgegeben.
// Temporäre Datei mit dme Inhalt von www.example.com
$this->getResourceFile('http://www.example.com/');
// Absolute Datei auf einem Windows-System
$this->getResourceFile('file://c:\temp\myfile.txt');
// Absolute Datei auf einem Unix-System (ohne file://)
$this->getResourceFile('/tmp/myfile.txt');
// Absolute Datei auf einem Unix-System (mit file://)
$this->getResourceFile('file:///tmp/myfile.txt');
in Assembly at line 1454
Directory
getLogPath()
Verzeichnis für Logdateien
in Web at line 159
protected Web
initLocaleFromHeader(array $localeArray)
Versuchen die Lokale über den Header zu setzen
in Web at line 184
protected Web
initLocaleFromQuery(array $localeArray)
Versuchen die Lokale über den Request zu setzen
in Web at line 209
protected Web
initLocaleFromRequest(array $localeArray, string $localeString)
Locale initialisieren
in Web at line 224
protected Web
initLocaleFromCookie(array $localeArray)
Versuchen die Lokale über ein Cookie zu setzen
in Web at line 254
Assembly
initLocale()
Lokale initialisieren
Die Lokale kommt aus dem Request. Wird keine passende Locale gefunden, so wird eine ConfigurationException geworfen.
In der Anwendungskonfiguration muss application.locale.languages definirt sein. Über den Schlüssel application.locale.language.requestkey kann ein Parameter definiert werden, der für die Sprache zuständig ist.
# kommagetrennte Liste mit den unterstützen Sprachen
application.locale.languages=de,de_CH,en
# Schlüssel für das Setzen der Lokale über einen Parameter
application.locale.language.parameterkey=language
Auswertereihenfolge: Query -> Cookie -> Header
in Web at line 318
string
getRequestID()
ID des aktuellen Aufrufs (wird von Ignition initialisiert)
in Web at line 376
Assembly
setBaseURI(URI $uri)
Basis-URI der Webseite setzen
in Web at line 389
Router|null
getRouter()
Router der Anwendung
Vor dem Aufruf von getRouter muss Web::initRouter() aufgerufen werden. Web::initRouter() wird in der Regel von Web::init() aufgerufen.
in Web at line 426
Request
getRequest()
Request
Rückgabe des von der PHP-Enging übergebenen Daten in Form eines Request-Objektes
in Web at line 487
protected User
validateIdentityAgainstAuthorities(string $username, string $password)
Überprüfen des Benutzernamens und des Passwortes
in Web at line 520
Identity|null
getIdentityFromRequest()
Identität aus Request ermitteln. Es wird nach den POST-Variablen username und password gesucht. Akternativ können diese in der Konfiguration mittels der Eigenschaften
- application.web.authentication.identity.key und
- application.web.authentication.identity.password
überschrieben werden.
in Web at line 557
protected null|Identity
getIdentityFromRequestBody(string $userNameKey, string $passwordKey)
Identität aus dem Body holen
in Web at line 572
protected null|Identity
getIdentityFromWWWAuthentification()
Authentifiaction von WWW-Authentification
in Web at line 597
protected Web
authenticate()
Diese Methode liest entweder aus der Session oder aus der POST-Variable username den Namen der angefragten Identität aus.
Der Schlüssel für die verwendete POST-Variable kann über die Konfigurationseinstellung application.web.authentication.identity.key definiert werden. Wurden keine Werte definiert, so wird username und password verwendet.
Wurde keine Identität angegeben, so wird ein Anonymous-Objekt vom Typ
\Alvine\Security\Authentication\Anonymous
inititalisiert.
in Web at line 634
Authority
getAuthority(string $name)
Authority
in Web at line 643
Authority>
getAuthorities()
Authorities
in Web at line 661
Web
initAuthority()
Autorität initialisieren
Konfigurationsvariable: application.web.authentication.authority
Hinweis: Die Identität der Anwendung wird nicht zwangsläufig in der Session gespeichert. Einfache GET-Request brauchen nur die Authorisation und nicht eine Session!
in Web at line 692
protected Web
route()
Diese Methode wird im Rahmen der Task-Bearbeitung (wenn nicht anders konfiguriert) aufgerufen und übergibt den Request an die im Routing definierten Presenter.
Wurde das Routing bereits durchgeführt, z.B. durch einen Authentifikationsfehler, so wird kein neues Routing gestartet.
in Web at line 829
Identity
getIdentity()
Identität der Anwendung
Hinweis: Die Identität der Anwendung wird nicht zwangsläufig in der Session gespeichert. Diese Zuweisung erfolgt zum Beispiel über den Authentication-Presenter.
Der Grund für diese gesonderte Zuweisung ist, das nicht jeder Request eine Session benötigt und bekommt. Ein einfacher Request kommt ohne Session aus und spart somit Resourcen.
in Web at line 851
Directory
getWebPath()
Verzeichnis der Webdateien
in Web at line 860
Directory
getErrorPath()
Verzeichnis der Fehlerdateien
in Web at line 869
Directory
getJSPath()
Verzeichnis fürJavascript
in Web at line 878
Directory
getThemePath()
Verzeichnis der Themes
in Web at line 887
Directory
getPublicVendorPath()
Verzeichnis für Fremdanbieterdateien Frontend
in Web at line 896
Directory
getW3CPath()
Verzeichnis mit P2P Datei
in Web at line 905
URI
getBaseURI()
Basis-URI
in Web at line 916
boolean
existsSession()
Prüft ob im Request eine Session gesetzt ist.
in Web at line 928
arraygetSessionDefinition()
Session Definition
Nur zur internen Verwendung in dieser Klasse Der Aufbau der Struktur kann sich jederzeit ändern.
in Web at line 954
Session|null
getSession()
Session
in Web at line 974
Web
initSession()
Lädt eine Session oder erstellt diese neu. Der Name der Klasse und der Name des Cookies, in dem die Session-ID gespeichert wird, kann über die Konfiguration gesteuert werden.
Werden keie Konfigurationswerte verwendet, so wird die Klasse \Alvine\Net\Session\Session, der Cookie-Name sid und eine Gültigkeit von einer Stunde verwendet.
Die Session wird aus dem in der Anwendung definierten Speicher abgelegt und aus diesem geladen. Ist keine Session verfügbar, so wird eine neue Session erstellt.
in Web at line 1035
protected Session
loadSession(string $sessionClass, string $id)
Diese interne Methode wird von Web::initSession() aufgerufen und lädt eine Session aus dem gegebenen Storagesystem. Für andere Storagesysteme muss diese Methode überschrieben werden.
in Web at line 1052
protected Web
writeSession()
Session schreiben. Für andere Storagesysteme muss diese Methode überschrieben werden.
Hinweis: Die Identität der Anwendung wird nicht zwangsläufig in der Session gespeichert. Diese Zuweisung muss gesondert erfolgen (zum Beispiel über den Authentifcator-Presenter).
Der Grund für diese gesonderte Zuweisung ist, das nicht jeder Request eine Session benötigt und nicht jede Session die Indentitäts-Informationen benötigt.