Quicknavi |
|
Migration von Version 1.6 auf 1.7
1. Einleitung
In der Version 1.7 wurde die Komponente ApplicationManager entfernt und durch eine
Registry und einen modifizierten Initialisierungsprozess ausgetauscht.
Dies garantiert einfachere Handhabung und effizientere Gestaltung von Applikationen. Das folgende
Kapitel zeigt, welche Schritte zur Migration vorgenommen werden müssen und welche Neuerungen
Einzug gehalten haben. Die Dokumentation wurde entsprechend angepasst.
2. Änderungen
Der ApplicationManager hat an Hand den Einträgen der INIT-Datei Konstanten erzeugt, die in den
unterschiedlichen Programmteilen Verwendung gefunden haben. Diese Art der Initialisierung wurde durch
die Einführung einer Registry, die zukünftig alle global verwendeten Parameter enthält
und einen in den PageController verlagerten Initialisierungsprozess ersetzt. Auf Konstanten wird ab
Version 1.7 komplett verzichtet, die initialen Konfigurationsdateien sind ab Release 1.7 obsolet.
Auf Grund dieser Anpassung werden einige Änderungen an den Bootstrap-Dateien und denjenigen
Komponenten fällig, die sich er bisher bereitgestellten Konstanten bedient haben. Die folgenden
Kapitel zeigen die Änderungen auf und geben Hinweise zur neuen Handhabung.
2.1. Registry
Ab Version 1.7 wird eine Registry zur Speicherung der global eingesetzten Parameter verwendet. Der
Registry-Store ist dabei in Namespaces unterteilt. Der Namespace apf::core beinhaltet
vier Konfigurationsdirektiven
- URLRewriting: Konfiguration des URL-Rewriting.
- URLBasePath: Pfad zur aktuellen Anwendung.
- Environment: Umgebungsvariable für die Konfiguration.
- LogDir: Pfad zum Log-Verzeichnis.
Die Bedeutung der einzelnen Werte und die Manipulation werden in den folgenden Kapiteln beschrieben.
Weiterhin ist die schreibgeschützte Direktive LibPath enthalten. Diese
beinhaltet den Pfad zur Code-Basis.
2.2. Konfiguration URL-Rewriting
Die Konstante APPS__URL_REWRITING wurde durch den Registry-Eintrag
URLRewriting im Namespace apf::core ersetzt. Der Parameter trägt
die Werte true (aktives URL-Rewriting) oder false (deaktiviertes
URL-Rewriting). Standardmäßig wird das URLRewriting mit false im PageController
initialisiert. Zur Manipulation des Wertes muss in der Bootstrap-Datei nach dem Einbinden des
PageControllers folgender Code eingefügt werden:
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','URLRewriting',true|false);
2.3. Konfiguration des Basis-Pfades
Die Konstante APPS__URL_PATH wurde durch den Registry-Eintrag
URLBasePath im Namespace apf::core ersetzt. Der Parameter trägt
die URL zur aktuellen Applikation und kann fungiert zur Linkgenerierung in Applikationen dienen.
Standardmäßig wird der URLBasePath mit dem Inhalt der Server-Variable HTTP_HOST
im PageController initialisiert. Zur Manipulation des Wertes muss in der Bootstrap-Datei nach dem
Einbinden des PageControllers folgender Code eingefügt werden:
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','URLBasePath','http://example.com/folder');
2.4. Konfiguration der Umgebung
Die Konstante APPS__ENVIRONMENT wurde durch den Registry-Eintrag
Environment im Namespace apf::core ersetzt. Der Parameter
beinhaltet den Namen der Umgebung der als Präfix für Konfigurationsdateien dient.
Standardmäßig wird die Umgebungsvariable mit dem Wert DEFAULT im PageController
initialisiert. Zur Manipulation des Wertes muss in der Bootstrap-Datei nach dem
Einbinden des PageControllers folgender Code eingefügt werden:
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','Environment','TESTSERVER');
Diese Anpassung sollte bei der Migration auf eine Version > 1.6 vorgenommen werden. Andernfalls
müssen bestehende Konfigurationsdateien umbenannt werden.
2.5. Konfiguration des Log-Verzeichnisses
Die Konstante APPS__LOG_PATH wurde durch den Registry-Eintrag
LogDir im Namespace apf::core ersetzt. Der Parameter beinhaltet
den Pfad, der als Log-Verzeichnis verwendet werden darf. Standardmäßig wird die Umgebungsvariable
mit dem Wert ./logs im PageController initialisiert. Zur Manipulation des Wertes
muss in der Bootstrap-Datei nach dem Einbinden des PageControllers folgender Code eingefügt werden:
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','LogDir','/path/to/my/log/dir');
Diese Anpassung sollte bei der Migration auf eine Version > 1.6 vorgenommen werden. Andernfalls
versucht der Logger Dateien im Verzeichnis der Bootstrap-Datei anzulegen.
2.6. Definition des Library-Verzeichnisses
In Versionen < 1.7 musste dem Framework mit der Konstante APPS__PATH der Pfad
zu den Software-Bibliotheken bekannt gegeben werden. Dies ist in Versionen > 1.6 nicht mehr
notwendig. Die Konfiguration entfällt ersatzlos.
2.7. Nach PHP-Version getrennte Releases
Zukünftig werden nach PHP-Version getrennte Releases angeboten. Hierbei ist auf das Suffix "php4"
für Anwender von PHP 4 und auf "php5" für PHP 5 Anwender zu achten. Die Spaltung bedeutet
auch, dass die Dateiendungen aller Dateien .php lautet. Dateien, die PHP 5 Code
enthalten brauchen nicht mehr mit .php5 gekennzeichnet werden. Dieser Schritt
bereitet die Abspaltung des PHP 4 Zweiges vor.
3. Aussehen einer typischen index.php
Bei der Migration von Versionen > 1.7 auf Version 1.7 wird der Code-Block
define('APPS__NAME','myapp'); define('APPS__PATH','./apps'); require_once(APPS__PATH.'/core/applicationmanager/ApplicationManager.php');
durch
require_once('/path/to/core/pagecontroller/pagecontroller.php');
ersetzt. Die Initialisierung des Frameworks wird dabei im PageController vorgenommen. Dadurch
verringert sich der Konfigurations- und Initialisierungsaufwand deutlich und der Inhalt einer
"neuen" index.php gestaltet sich wie folgt:
require_once('/path/to/core/pagecontroller/pagecontroller.php');
import('core::frontcontroller','Frontcontroller');
$fC = &Singleton::getInstance('Frontcontroller'); $fC->set('Context','my::context'); $fC->set('Language','de'); $fC->start('sites::mysite','pres/templates/site');
Zur Anpassung der Standard-Parameter soll die Registry genutzt werden. Die folgende Code-Box zeigt
wie die in Kapitel 2 erklärten Parameter mit Hilfe der Registry angepasst werden. Dabei ist
wichtig, dass die Anpassung vor Instanziierung des Page- oder des FrontControllers
erledigt wird:
require_once('/path/to/core/pagecontroller/pagecontroller.php');
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','LogDir','/path/to/my/log/dir');
import('core::frontcontroller','Frontcontroller');
$fC = &Singleton::getInstance('Frontcontroller'); $fC->set('Context','my::context'); $fC->set('Language','de'); $fC->start('sites::mysite','pres/templates/site');
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.
Für diesen Artikel liegen aktuell keine Kommentare vor.
|