Artikel » Migration von 1.6 auf 1.7
Migration von 1.6 auf 1.7
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.
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.
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.
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:
PHP-Code
$Reg = &Singleton::getInstance('Registry');
$Reg->register('apf::core','URLRewriting',true|false);
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:
PHP-Code
$Reg = &Singleton::getInstance('Registry');
$Reg->register('apf::core','URLBasePath','http://example.com/folder');
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:
PHP-Code
$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.
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:
PHP-Code
$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.
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.
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.
Bei der Migration von Versionen > 1.7 auf Version 1.7 wird der Code-Block
PHP-Code
define('APPS__NAME','myapp');
define('APPS__PATH','./apps');
require_once(APPS__PATH.'/core/applicationmanager/ApplicationManager.php');
durch
PHP-Code
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:
PHP-Code
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:
PHP-Code
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
Bitte geben Sie Ihren Kommentar hier ein. Füllen Sie alle mit * gekennzeichneten Felder vollständig und korrekt aus. Um zum Artikel zurückzukehren klicken sie bitte
hier. Zur Formatierung des Textes können folgende BBCode-ähnliche die Zeichen verwendet werden:
- [b]..[/b]: fett
- [i]..[/i]: kursiv
- [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.