Overview

Namespaces

  • Alvine
    • Application
      • Configuration
      • Console
        • Option
        • Terminal
          • VT100
      • Data
        • Generic
      • Resource
      • UI
      • Web
        • Model
          • Linkage
            • Relation
            • Structure
        • Presenter
          • Access
          • Data
          • Event
          • File
          • Page
            • Plugin
              • Authentication
              • Html
              • I18n
              • Navigation
              • UI
                • Wrapper
        • Route
          • Cache
          • Exception
          • Handler
        • View
          • Data
          • Definition
          • Intern
          • Json

Classes

  • Assembly
  • AssemblyNotFoundException
  • Component
  • ConfigurationException
  • Console
  • MissingViewException
  • Model
  • Presenter
  • TaskNotFoundException
  • View
  • Web

Interfaces

  • ModelFactory
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated

Class Assembly

Definition eines Rahmen der eine Anwenung kapselt und alle Informationen sammelt.

Eine Anwendung wird über den Factory-Methode execute() gestartet. Als Parameter wird die gewünschte Anwendung als String übergeben.

try {
    \Alvine\Application\Assembly::execute(
       __NAMESPACE__.'\Implementation\Main',  // Klassenname der Hauptklasse inkl. Namensraum
       __DIR__.DIRECTORY_SEPARATOR.           // Pfad auf die Zusammenstellung
       '..'.DIRECTORY_SEPARATOR.
       '..'.DIRECTORY_SEPARATOR);
} catch(\Exception $e) {
  echo $e->getMessage();
}

Die Tasks die eine Anwendung durchführen soll, werden in der Konfigurationsdatei der Anwendung unter den Schlüsseln application.task.* aufgeführt. Soll eine Anwendung einen Task besitzen, so kann die Konfiguration folgendermassen aussehen.

// Initialisieren der Anwendung
   application.task.do=runDo
   // Es wird die Methode ->runDo() in der Klasse
   // der Anwendung aufgerufen.
Alvine\Core\Alvine
Extended by Alvine\Application\Assembly

Direct known subclasses

Alvine\Application\Console, Alvine\Application\Web
Abstract
Namespace: Alvine\Application
Package: Alvine\Application
Category: Alvine
License: Alvine Nutzungslizenz
Author: schukai GmbH info@schukai.de
Version: $Revision: 357 $
Since: 20130629
Link: alvine.io
Located at Assembly.class.php
Methods summary
protected
# __construct( string $path, integer $applicationMode = Alvine\Application\Assembly::APPLICATIONMODE_PRODUCTIVE, Alvine\Application\Configuration\Facility $facility = null )

Neues Anwendugs-Objekt erstellen.

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.

Parameters

$path
$applicationMode
$facility

Throws

Alvine\Application\ConfigurationException
public
# __destruct( )

Anwendung beenden

Anwendung beenden

protected Alvine\Application\Assembly
# initEventQueues( )

Eventqueues

Eventqueues

Returns

Alvine\Application\Assembly
protected Alvine\Core\Event\EventQueue
# getEventQueue( Alvine\Core\Event\Event $class )

Eventqueue für Event holen und wenn noch nicht vorhanden anlegen

Eventqueue für Event holen und wenn noch nicht vorhanden anlegen

Parameters

$class

Returns

Alvine\Core\Event\EventQueue

Throws

Alvine\Types\TypeException
public Alvine\Application\Assembly
# subscribeEvent( Alvine\Core\Event\Subscriber $subscriber, type $eventClass )

Event abonnieren

Event abonnieren

Parameters

$subscriber
$eventClass

Returns

Alvine\Application\Assembly
public Alvine\Application\Assembly
# unsubscribeEvent( Alvine\Core\Event\Subscriber $subscriber, type $eventClass )

Abmelden

Abmelden

Parameters

$subscriber
$eventClass

Returns

Alvine\Application\Assembly
public Alvine\Application\Assembly
# triggerEvent( Alvine\Core\Event\Event $event )

Event Triggern

Event Triggern

Parameters

$event

Returns

Alvine\Application\Assembly
public Alvine\I18n\Locale
# getLocale( )

Lokale der Anwendung

Lokale der Anwendung

Returns

Alvine\I18n\Locale
public Alvine\Application\Assembly
# setApplicationMode( integer $mode )

Modus der Anwendung

Modus der Anwendung

Parameters

$mode

Returns

Alvine\Application\Assembly
public boolean
# isApplicationMode( integer $mode )

Prüft ob die Anwendung in dem Modus ist

Prüft ob die Anwendung in dem Modus ist

Parameters

$mode
Prüfung auf den Mode

Returns

boolean
public static Alvine\Application\Assembly
# execute( string $assemblyClass, string $classPath = null, string $workingPath = null, integer $applicationMode = Alvine\Application\Assembly::APPLICATIONMODE_PRODUCTIVE, Alvine\Application\Configuration\Facility $facility = null )

Programm ausführen

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.

Parameters

$assemblyClass
$classPath
$workingPath
$applicationMode
$facility

Returns

Alvine\Application\Assembly
Instanz der Anwendung

Throws

Alvine\Application\AssemblyNotFoundException
Alvine\Core\InvalidArgumentException
public static Alvine\Application\Assembly|null
# getInstance( string $assemblyClass = null )

Instanz ermitteln. Wird keine Instanzklasse angegeben, so wird das aktuelle Objekt in der Instanz-Map verwendet.

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.

Parameters

$assemblyClass

Returns

Alvine\Application\Assembly|null
public boolean|Alvine\Application\Assembly
# validateInstanceCache( )

Meßwerte überprüfen

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.

Returns

boolean|Alvine\Application\Assembly

Throws

Alvine\Cache\Probe\InvalidProbeException
protected Alvine\Application\Assembly
# initCacheExaminer( )

Instanzprüfung inititalisieren

Instanzprüfung inititalisieren

Abgeleitetet Anwendungen müssen diese Methode um die wichtigen Meßwerte erweitern. In dieser Implementierung wird die Konfigurationsdatei als Meßwert verwendet. Ändert sich die Konfigurationdatei, so wird der Cache für ungültig erklärt.

Returns

Alvine\Application\Assembly
Dieses Objekt
public boolean
# isInstanceValide( )

Gültigkeit prüfen

Gültigkeit prüfen

Prüfen ob die Daten der Instanz noch gültig sind.

Returns

boolean
Ergebnis
public static
# refresh( string $assemblyClass )

Anwendungsklasse aktualisieren

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.

Parameters

$assemblyClass
Klassenname und Namespace der Anwendung
public static Alvine\Cache\CacheManager
# getCacheManager( )

AppCache zur Beschleunigung von Anfragen

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.

Returns

Alvine\Cache\CacheManager
CacheManager
protected Alvine\Application\Assembly
# loadConfig( string $assembly,…, Alvine\IO\File\Directory $directory,… )

Konfiguration laden

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.

Parameters

$assembly,…
Name des Assembly
$directory,…
Verzeichnis der Anwendung

Returns

Alvine\Application\Assembly

Throws

Alvine\Application\ConfigurationException
public string
# replaceEnvironmentPlaceholder( string $string )

Standardplatzhalter der Anwendung

Standardplatzhalter der Anwendung

Diese einfache Methode ersetzt in einer Zeichenkette Platzhalter durch den entsprechenden Wert. Folgende Platzhalter stehen zur Verfügung

Pfade {CONFIGPATH} Pfad zu den Konfigurationsdateien {ASSETSPATH} Pfad zu den Assets {BASEPATH} Pfad zu Hauptverzeichnis der Anwendung (muss nicht das Webroot sein) {LICENCEPATH} Pfad zu den Lizenzen {REPOSITORYPATH} Pfad zum Repository {RESOURCEPATH} Pfad zu den Resourcen {TEMPPATH} Temporäres Verzeichnis des Systems {LOGPATH} Pfad zum Logverzeichnis

Anwendung {APPLICATIONID} UUID der Anwendung

Environment {ENV:KEY} Environmentvariable $_ENV['KEY']

Parameters

$string
Inhalt

Returns

string
Inhalt mit ersetzten Platzhaltern
protected Alvine\Application\Assembly
# setDirectories( Alvine\IO\File\Directory $directory )

Verzeichnisse setzen

Verzeichnisse setzen

Setzt den Basispfad und alle abgeleiteten Pfade

Diese Methode initialisiert die Pfade für die Assets, die Classes, Config, Vendors, Ressources und Views.

Unter Unix ist das Logverzeichnis im Standard auf /var/log/alvine/ gesetzt, unter Windows auf %AllUsersProfile%\alvine\log. Als Fallback für andere Betriebssysteme wird das Verzeichnis auf das Temporäre Verzeichnis gesetzt

Parameters

$directory
Basispfad der Anwendung

Returns

Alvine\Application\Assembly
Dieses Objekt
protected Alvine\Application\Assembly
# initSMTPClient( )

Mailclient initialisieren

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)

Returns

Alvine\Application\Assembly
Dieses Objekt
protected Alvine\Application\Assembly
# initLogger( )

Logging initialisieren

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

Returns

Alvine\Application\Assembly
Dieses Objekt
public Alvine\Application\Configuration\Properties
# getConfiguration( )

Konfiguration zurückgeben

Konfiguration zurückgeben

Liefert eine Kopie der Konfigurations. Änderungen in dem Objekt haben keine Auswirkungen auf die Anwenndung.

Returns

Alvine\Application\Configuration\Properties
public 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.

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.

Parameters

$key
Schlüssel
$default
Wert

Returns

string
Konfigurationswert
protected
# initPersistenceManager( )

Instanz des Storage-Manager holen und Referenz in der Anwendung speichern

Instanz des Storage-Manager holen und Referenz in der Anwendung speichern

Returns


$this
protected Alvine\Application\Assembly
# initStorage( )

Initialisiert die Struktur für den Objektspeicher.

Initialisiert die Struktur für den Objektspeicher.

Returns

Alvine\Application\Assembly
public Alvine\Application\Assembly
# initStorageIndex( )

Initialisiert die Struktur für den StorageIndex.

Initialisiert die Struktur für den StorageIndex.

Returns

Alvine\Application\Assembly
public Alvine\Application\Assembly
# registerStorage( string $className, Alvine\Persistence\ObjectStorage $storage )

Ein Storageobjekt registrieren.

Ein Storageobjekt registrieren.

Parameters

$className
Für diese Klasse oder das Interface gilt das Storageobjekt
$storage
Storageobjekt

Returns

Alvine\Application\Assembly
Dieses Objekt
public Alvine\Application\Assembly
# unregisterStorage( string $className )

Registrierung für eine Klasse aufheben

Registrierung für eine Klasse aufheben

Parameters

$className
Name der Klasse

Returns

Alvine\Application\Assembly
Dieses Objekt
public Alvine\Core\Alvine
# getObject( string $className, string $id )

Objekt aus dem Storage auslesen

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.

Parameters

$className
Name der Klasse
$id
ID des Objektes

Returns

Alvine\Core\Alvine
Gespeicherte Klasse

Throw

\Alvine\Persistence\ObjectNotFoundException Objekt nicht gefunden
\Alvine\Core\UnserializeException Beim unserialize ist ein Problem aufgetreten
\Alvine\Types\TypeException Wenn das gefundene Objekt vom Typ $className abweicht
public Alvine\Types\Subset
# findObject( string $className, Alvine\Persistence\Find\Query $query )

Nach einem Objekt suchen

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.

Parameters

$className
Klassenname
$query
Query

Returns

Alvine\Types\Subset
Ergebnismenge

Throws

Alvine\Core\NullException
Es wurde kein Handler für den Typ gefunden
Alvine\Persistence\Find\FindException
Im Ergebnis wurde ein Eintrag ohne UUID oder Type gefunden. Wahrscheinlich ist der Index nicht mehr konsistent.
protected Alvine\Persistence\ObjectStorage
# getPersistenceHandler( string $className, string $mode )

Handler für den entsprechenden Speichertyp

Handler für den entsprechenden Speichertyp

Parameters

$className
Klassenname
$mode
Mode für die Exception

Returns

Alvine\Persistence\ObjectStorage

Throws

Alvine\Core\NullException
Nicht gefunden
public Alvine\Core\Alvine
# deleteObject( Alvine\Core\Alvine $object )

Objekt aus dem Storage löschen

Objekt aus dem Storage löschen

Diese Methode löscht ein Objekt aus dem in der Konfiguration definierten Speicher.

Parameters

$object
zu löschende Objekt

Returns

Alvine\Core\Alvine
gelöschte Klasse
public Alvine\Application\Assembly
# writeObject( Alvine\Core\Alvine $object )

Objekt in den definierten Speicher schreiben

Objekt in den definierten Speicher schreiben

Das übergebene Objekt wird serialisierten und in den angegebenen Speicher geschrieben.

Parameters

$object
zu speicherndes Objekt

Returns

Alvine\Application\Assembly
Dieses Objekt
public 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.

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.

Returns

string
Hashwert des Objektes
protected Alvine\Application\Assembly
# init( )

Task: Init - Inititalisierung der Anwendungsklasse

Task: Init - Inititalisierung der Anwendungsklasse

Returns

Alvine\Application\Assembly
protected Alvine\Application\Assembly
# finalize( )

Abschlußarbeiten

Abschlußarbeiten

Returns

Alvine\Application\Assembly
Dieses Objekt
protected Alvine\Application\Application
# handleTasks( )

Abarbeiten der in der Config definierten Tasks

Abarbeiten der in der Config definierten Tasks

Returns

Alvine\Application\Application
Dieses Objekt

Throws

Alvine\Application\TaskNotFoundException
Der Task wurde nicht gefunden.
public Alvine\Application\Application
# setView( Alvine\Application\View $view )

Neues View setzen

Neues View setzen

Parameters

$view
View

Returns

Alvine\Application\Application
Dieses Objekt
public Alvine\Application\View
# getView( )

View

View

Returns

Alvine\Application\View
View
public Alvine\IO\File\Directory
# getRepositoyPath( )

Speicherort für Daten

Speicherort für Daten

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getLicensePath( )

Verzeichnis mit Lizenzen

Verzeichnis mit Lizenzen

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getConfigPath( )

Verzeichnis der Konfigurationsdateien

Verzeichnis der Konfigurationsdateien

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getAssetPath( )

Assets-Verzeichnis

Assets-Verzeichnis

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getBasePath( )

Basisverzeichnis

Basisverzeichnis

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getClassPath( )

Code-Verzeichnis

Code-Verzeichnis

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\Directory
# getResourcePath( )

Verzeichnis mit Resourcen

Verzeichnis mit Resourcen

Returns

Alvine\IO\File\Directory
Verzeichnis
public Alvine\IO\File\File
# getResourceFile( string $filename )

Resourcen-Datei-Objekt zurückgeben

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');

Parameters

$filename
Dateiname oder URI

Returns

Alvine\IO\File\File
public Alvine\IO\File\Directory
# getLogPath( )

Verzeichnis für Logdateien

Verzeichnis für Logdateien

Returns

Alvine\IO\File\Directory
Verzeichnis
Constants summary
string DEFAULTSTORAGEHANDLER

Klassenname des Default-Handlers

Klassenname des Default-Handlers

# 'default'
string DEFAULTSTORAGEINDEXHANDLER

Klassenname des Default-Handlers dex Indexers

Klassenname des Default-Handlers dex Indexers

# 'default'
string UUID

Statische default UUID dieser Klasse

Statische default UUID dieser Klasse

# 'c8cb59a2-cc97-478a-e038-0b7a8b774b81'
integer APPLICATIONMODE_PRODUCTIVE

Standardmodus

Standardmodus

# 0
integer APPLICATIONMODE_TESTING

Standardmodus

Standardmodus

# 2
integer APPLICATIONMODE_DEVELOPMENT

Standardmodus

Standardmodus

# 4
integer APPLICATIONMODE_DEBUG

Trace

Trace

# 8
Properties summary
protected integer $applicationMode

Modus der Anwendung

Modus der Anwendung

#
protected Alvine\Application\Configuration\Facility $facility

Ort der Ausführung der Anwendung

Ort der Ausführung der Anwendung

#
protected string $configurationName

Anwendungskonfiguration

Anwendungskonfiguration

Anhand der Dateiendung kommen unterschiedliche Verarbeitungen in Frage. Aktuell werden die folgenden Formate unterstützt: .properties

# 'assembly.properties'
protected Alvine\Types\Node $configuration

Anwendungskonfiguration

Anwendungskonfiguration

# null
protected Alvine\IO\File\Directory $basePath

Der Basispfad der Anwendung

Der Basispfad der Anwendung

# null
protected Alvine\IO\File\Directory $assetPath

Unter Assets werden Mediadateien wie Grafiken oder CSS-Dateien abgelegt. Der Zugriff auf diese erfolgt allerdings nicht über den Webbrowser, da je nach Konfiguration dieses Verzechnis nicht im Dokumenten-Root liegt.

Unter Assets werden Mediadateien wie Grafiken oder CSS-Dateien abgelegt. Der Zugriff auf diese erfolgt allerdings nicht über den Webbrowser, da je nach Konfiguration dieses Verzechnis nicht im Dokumenten-Root liegt.

# null
protected Alvine\IO\File\Directory $classPath

Der Klassenpfad der Anwendung

Der Klassenpfad der Anwendung

# null
protected Alvine\IO\File\Directory $configPath

Im config-Verzeichnis liegen die Konfigurationsdateien.

Im config-Verzeichnis liegen die Konfigurationsdateien.

# null
protected Alvine\IO\File\Directory $logPath

Logverzeichnis

Logverzeichnis

# null
protected Alvine\IO\File\Directory $licensePath

Lizenzdateien

Lizenzdateien

# null
protected Alvine\IO\File\Directory $repositoyPath

Speicherort für Objekte

Speicherort für Objekte

# null
protected Alvine\IO\File\Directory $resourcePath

Resourcen

Resourcen

# null
protected static Alvine\Types\Map\ObjectMap $instance

Einzige Objektinstanz (singelton) der Anwendung

Einzige Objektinstanz (singelton) der Anwendung

# null
protected static Alvine\Cache\CacheManager $cacheManager

Cache

Cache

# null
protected Alvine\Application\View $view

View der Anwendung

View der Anwendung

# null
protected Alvine\Cache\Examiner $cacheExaminer

Prüfpunkte für den Anwender-Cache

Prüfpunkte für den Anwender-Cache

# null
protected Alvine\Types\Map\ObjectMap<\Alvine\Core\Event\EventQueue> $eventQueues
#
protected Alvine\I18n\Locale $locale
#
protected Alvine\Persistence\Manager $storageManager
# null
alvine.application API-Dokumentation 1.1.1 | © schukai GmbH | Impressum