DTIS Framework

Unser Framework

baut weitgehend auf dem MVC-Pattern auf. Um das Framework modularer zu gestalten verwendet es eine vierschichtige Architektur.
In den Ursprüngen wurde es oft mit einer dreischichtigen Architektur verwendet.
Deiß1 beschreibt den Vorteil einer Vier-Schichten-Architektur wie folgt:

PHP4 lässt "nur" eine Kapselung in Namespaces (Namensräume entspricht
Klassen in PHP) und keine Deklarierung der Klassenattribute als private (Zugriff nur innerhalb der Klasse über get- und set-Methoden).
Dies führt zu der Konsequenz, dass eine offene Architektur (relaxed Architecture) verwendetwerden muss.
Unter einer offenen Architektur versteht man eine Architektur, die den Zugriff von einer Schicht auf alle darunterliegenden zulässt. Dies wird aber nur in Ausnahmefällen durchgeführt (Sitzungsverwaltung/Session).
Beim Sessionmanagement lässt sich dies nicht vermeiden, da auf Objekte der Fachdomänenschicht zugegriffen wird und gleichzeitig auf dem Server Dateien geschrieben werden (Inhalte der Session).
Ein ähnliches Problem tritt beim Zugriff, Speichern und Löschen eines Objektes auf, wenn es mehrere Objekte (Entitäten) enthält. In diesem Fall geht der Zugriff über mehrere Tabellen der Datenbank.
Dieses Problem wird durch ein Prototype Pattern gelöst.
Somit gelingt es, den Zugriff auf die Datenbankobjekte aus Sicht des Controllers zu generalisieren. Von einer Generalisierung spricht man, wenn eine Aussage für alle Objekte einer Klasse gültig ist.

Ein kleiner Auszug der Features des Frameworks:

  • Trennung von Applikationslogik, Datenbankzugriff und Darstellung
  • Aufteilung in Datenbankentwickler, Designer/Layouter und Programmierer
  • Einfacher Austausch und Erweiterbarkeit durch Schichtmodell und Einsatz von Software Patterns
  • Einsatz des bewährten MVC-Konzeptes
  • Ungewohnt hohe Abstraktion (für PHP) bei der Anwendungsentwicklung. (Keine Formatinformationen oder SQL innerhalb der Applikationsschicht nötig)
  • Smarty als Template Engine (Nutzung der SMARTY Features für die Darstellungsschicht)
  • Darstellungsschicht lässt sich leicht austauschen (eine Klasse), z.B. Verwendung einer anderen Template Engine, PDF,..
  • Mehrsprachenunterstützung
  • Konfigurierbares Skript-, Error- und SQL-Fehlerlogging
  • Zentrale Datei- und/oder Datenbankgestützte Nachrichtenverwaltung
  • Zentrale Datei- und/oder Datenbankgestützte Parameterprüfverwaltung (gekoppelt mit Nachrichtenverwaltung)
  • MySQL als Datenbank (Klasse lässt sich ohne Beeinträchtigung des Frameworks austauschen und durch eine andere Datenbank ersetzen)
  • Es wird immer nur eine Verbindung zur DB hergestellt ( zentral konfigurierbar, ob die Verbindung automatisch geschlossen werden soll)
  • Session- und Benutzerrollen integriert und konfigurierbar
  • Konfigurator für:
    • Fehler- und Nachrichtenverwaltung
    • Skript-, Error- und SQL-Fehlerlogging
    • Erstellung der einfachen Objekte (Klassen, Entities, Gateways) der Fachdomänenschicht (teilw. Reverse Engineering in Bezug auf DB möglich)
    • Erstellung des Kontrollergerüstes
    • einfache Versionsverwaltung ( Anzeige des Autors und Version für Update von Klassen)
  • leichte Portierbarkeit von einem Server auf einen anderen Server
  • Standard Funktionen für die Webentwicklung wurden generalisiert und eingebunden ( als Klassen oder Methoden )

1 Deiß, M. (2005). Königsweg zu qualitativ hochwertigen Web ? Anwendungen. Online-Artikel. dotnetpro (07.04.2005). Zugriff am 16. August 2005 unter www.basicworld.com/articles/webarticle20.aspx

Aktuelle Mitteilungen

21.12.2010
SEO-Tool bis zum 24.12. günstig kaufen
lesen
04.04.2010
People & Porträt - Das Photoshop-Buch People & Porträt
lesen
23.02.2010
Sicherheits-Update Typo3 auf 4.2.12 und 4.3.2 veröffentlicht
lesen

Was ist ein Framework?

Ein Framework ist eine Menge erweiterbarer, kooperierender Objekte
(Klassen), für die eine spezielle Anwendungsform definiert und implementiert ist.
(Dumke, Reiner (2003). Software Engineering 4. Auflage. Wiesbaden: Friedr. Vieweg & Sohn Verlag, S. 335.)