// Don's Rapid Framework erreicht fast BETA-Status

{Bloginternes}
09.02.2009
DonTermi
Nachdem nun wieder ewig viel Zeit vergangen ist habe ich mir nun mal Zeit genommen wieder etwas neues zu schreiben. Dies betrifft mal meinen neuen Framework, den ich schon vor Urzeiten - Dinosaurier waren da aber schon weg - begonnen habe. Meinen bisherigen Framework fand ich nicht mehr zeitgemäss und die standardmäßige Integration von Smarty machte diesen auch ziemlich oversized.

Den neuen Framework habe ich "Don's Rapid Framework" getauft. Neu ist das dieser stärker nach dem MVC Modell arbeitet. Applikation (das eigentliche Skript) ist nach wie vor vom Template getrennt. Allerdings wird für das Template keine Template Engine eingesetzt sondern direkt geparst. Daher gibt es auch nun auch die 2 Verzeichnisse "apps" und "views" im Root. Eine Apps (Applikation) Datei ist z.b. index.php in /apps/ und parallel muss dazu eine /views/index.html Datei existieren.
In der Template Datei können ganz normal PHP Funktionen integriert werden. Aus Übersichtsgrünen sollten aber komplexe Abläufe in der apps Datei stattfinden. Alle Funktionen und Hauptklassen wurden noch nicht vom alten ins neue Framework portiert. Derzeit benutze ich ein Projekt um das Rapid Framework auszutesten und fehlende Features zu integrieren. Vom Testprojekt habe ich es inzwischen geschafft die Login-Seite vollständig im neuen Framework parsen zu lassen. Daher kann dieser kleine Benchmarktest nur als BETA angesehen werden:

altes Framework (Framework Project) mit Smarty
0.05885 sec

neues rapid-framework
0.0196 sec


Der Geschwindigkeitsunterschied ist schon deutlich. Bei einigen Main-Klassen habe ich, neben der Portierung, auch Verbesserungen vorgenommen. Die MySQL Klasse kann jetzt einen "reconnect" durchführen. Vor einem Query wird geprüft ob die Verbindung zum Datenbankserver noch besteht und falls nicht wird versucht diese wieder aufzubauen. Die Session-Klasse wurde dahingehend überarbeitet das mehr Sicherheitsprüfungen durchgeführt werden. U.a. wird jetzt berücksichtigt ob der Benutzer ein AOL Zugang benutzt oder hinter einem Proxy hängt. Dadurch werden unschöne Zwangs-IP-Wechsel, wobei die Session bisher den Benutzer aufgrund der veränderten IP rejected hat, zugelassen. Alles ist frei konfigurierbar. Eine weitere Erneuerung ist das Datenbankobject-Model. Die Datenbank wird nun nicht mehr direkt über das Datenbankobjekt angesprochen sondern über einen DBO-Handler (Database Object). In dieses DB-Object werden Datenbanktreiber (= Klassen), entsprechend der eingestellten Konfiguration, geladen und verwaltet. Dies hat den Vorteil das man "gleichzeitig" mehere Datenbanken ansprechen kann. Je nach Datenbanktreiber können dies eine oder mehere MySQL Datenbankserver sein oder ein MySQL und ein MSSQL Server. Bisher habe ich mich bei der Entwicklung des Treibers ausschließlich auf MySQL konzentriert. Andere Treiber können jederzeit selbst programmiert werden.

Sobald ich das Testprojekt erfolgreich portiert habe werde ich eine Beta-Version des Frameworks zum Donwload anbieten.



:: Kommentieren / Rumsabbeln
Name (benötigt)
E-Mail (freiwllig, keine Veröffentlichung)
Homepage (freiwillig)

Bitte anklicken! (SPAM-Schutz + Turing-Test)