Verifikation von Algorithmen (anhand von Biphrost)

Friday, 05 June 2009, 16:37 von Blackflash

Seit einiger Zeit hat sich nichts an Biphrost verändert, was vor allem daran lag, dass bisher keine neuen Features notwendig waren, die mit dem Gedanken von Biphrost vereinbar sind, d.h. Biphrost ist bisher vollständig. Aber ist Biphrost auch korrekt, d.h. macht Biphrost das, was vorgesehen ist? Ich habe keinerlei Unit-Tests verwendet, aber macht das einen Unterschied in Bezug auf Korrektheit? Nei[...]



Friday, 10 October 2008, 15:24 von Blackflash

Als ich gestern Abend versuchte, auf Wunsch eines Benutzers, ein Projekt mit dem Namen "Bifrost" zu registrieren, wurde ich darauf aufmerksam, dass es bereits ein Projekt mit demselben Namen bei SourceForge gibt. Kurzerhand habe ich beschlossen, das Projekt in Biphrost um zu benennen. An der Aussprache ändert sich nichts, nur an der Schreibweise, die übrigens an PH(P) erinnern soll. Heute hab[...]



Thursday, 09 October 2008, 15:06 von Blackflash

Ab sofort lässt sich Bifrost runterladen. Es haben sich einige Funktionalitäten verändert:

  • Dispatcher:
    • Fehler beim Finden von Einstiegspunkten wurde korrigiert.
    • Ein übergebener URL "/" wird nicht mehr zu "/index".
  • Application-Klasse:
    • Basis-URL wird nicht mehr übergeben.
    • Include-Pfad wird nicht verändert.
    • Das Setzen eines Dispatchers ist nun möglich.
  • MyApp-Klasse:
    • Include-Pfad wird verändert für den Aut[...]


Biphrost: Application

Thursday, 09 October 2008, 14:45 von Blackflash

Bei der Application-Klasse handelt es sich um das Herzstück jeder Bifrost-Applikation. Die Funktionalitäten sind schnell beschrieben:

  • Die Verwaltung von Pfaden (Templates, Einstiegspunkte, Applikationscode).
  • Verwaltung und Wahl eines geeigneten Dispatchers (i.d.R. aufbauend auf dem Pfad der Einstiegspunkte).
  • Verwalten eines prototypischen Transfer-Objekts.
  • Transfer-Objekte vorbereiten und nachber[...]


Biphrost: Template

Monday, 06 October 2008, 18:11 von Blackflash

Wie fast jedes Framework verfügt auch Bifrost über eine Template-Engine. Im Gegensatz zu vielen anderen Entwicklungen stellt die Template-Klasse aus Bifrost lediglich einen leichtgewichtigen Wrapper für PHP-Templates dar. Ziel ist es nicht, möglichst viele Funktionalitäten bereitzustellen, sondern einen Container anzubieten, der in den Einstiegspunkten mit Daten gefüllt wird und am Ende der [...]



Biphrost: Dispatcher

Monday, 06 October 2008, 17:26 von Blackflash

Der Dispatcher wurde, wie der Name bereits suggeriert, zum Abfertigen von Anfragen entworfen. Dazu benötigt er den Einstiegspunkt-Algorithmus, der in einer iterativen Variante implementiert wurde und somit verständlicher ist als die rekursive Variante und sich in der Methode findEntrance befindet:

$components = ($uri == '/' ? array('index') : array_filter(explode('/', $uri))); $dir = $this->[...]


Monday, 06 October 2008, 00:01 von Blackflash

Ab sofort ist es möglich, Bifrost runterzuladen.
Die Änderungen beinhalten:

  • Dispatcher:
    • Der Einstiegspunkt-Algorithmus wurde durch eine iterative Variante ersetzt.
    • findEntrance ist nun öffentlich, was für Rechtesystem Relevanz hat.
    • URLs dürfen nur noch ohne Query-Strings übergeben werden.
    • Sollte ein Einstiegspunkt nicht existieren, wird das Transfer-Objekt nicht abgefertigt.
  • Transfer hat ein dispat[...]



Biphrost: Transfer

Friday, 03 October 2008, 19:02 von Blackflash

Die eigentliche Aufgabe der Transfer-Komponente besteht im Transport von Daten zwischen verschiedenen Schichten, weshalb die die Transfer-Klasse das Data-Transfer-Object-Entwurfsmuster implementiert. Ein wesentlicher Aspekt dieses Entwurfsmusters ist das Fehlen jeglicher Funktionalität, wenn man vom Zugriff und dem Halten der Daten absieht.
Nebeneffekt dieses Konzepts ist das Vermeiden von g[...]



Friday, 03 October 2008, 13:16 von Blackflash

Dieser Artikel soll einen kurzen Überblick über die wesentlichsten Aspekte von Bifrost liefern. Es handelt sich dabei um folgende Themen:

  • Ordnerstruktur
  • Komponenten
  • Abarbeitung von Anfragen


Nach dem Entpacken des Bifrost-Archivs erscheint folgende Ordnerstruktur:

  • application: Sammelordner für eine bestimmte Applikation.
  • application/code: Code für die Applikation und Bibliotheken sind Inhalt [...]



Friday, 03 October 2008, 13:15 von Blackflash

Bei Biphrost (eigentlich Bifröst) handelt es sich um die konsequente Weiterentwicklung des Algorithmus aus dem letzten Blog-Artikel. Der Name entstammt der nordischen Mythologie und beschreibt die dreistrahlige Regenbogenbrücke zwischen Midgard und Asgard und damit die Verbindung zwischen "Himmelsreich" und "Erdenwelt", übertragen stellt es die Brücke zwischen den Benutzern und der Applikation dar[...]