Adventure,PHP,Framework,PageController,FrontController,Pattern,Objektorientierung,OO,Software,Design,Wiederverwendbarkeit,UML,Tutorial,Benchmark,ausgezeichnete Performance

Suche:    
Downloads  |  SVN!  |  Roadmap  |  Forum!  |  Bugtracking  |  Gästebuch  |  Backlinks!  |  Referenzen!  |  Sitemap  |  Impressum  
 
Deutsch | English Adventure PHP Framework  Bookmark @ Technorati Bookmark @ del.icio.us Bookmark @ Mr. Wong Bookmark @ Simpy Bookmark @ Google Bookmark @ Digg.com Adventure PHP Framework Seite 066-Migration-von-Version-1.6-auf-1.7 drucken!

Migration von Version 1.6 auf 1.7

Artikel bewerten:
Dieser Artikel wurde noch nicht bewertet. Bewerten Sie diesen Artikel als erstes!

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

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:
  • [f]..[/f]: fett
  • [k]..[/k]: kursiv
  • [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.

Name:*
E-Mail:*

Kommentar:


Bestätigungscode:*



Powered by WebRing.