Nov18
Nur zur Information: dieser Blog wird geforkt. Alle Inhalte eher generischer Natur fließen nun in meinen eigenen Blog.
Inhalte bezüglich Browsergames, MMOs, deren Communities und natürlich unserer Projekte fließen nach wie vor in diesen Blog.
Vielen Dank für Ihre Aufmerksamkeit.
Nov10
Da die Entwicklung der Unit Tests schneller voran geht, als gedacht, habe ich etwas Zeit euch etwas mehr über Zeitgeist zu erzählen.
Ein Projekt mit Zeitgeist ist so aufgebaut:

- _additional_material: alles, was nicht direkt zum Projekt gehört, aber mit im SVN ist (Konzept, Schemata, etc)
- classes: Projektspezifische Klassen
- configuration: Projektspezifische Konfiguration
- forms: Formularbeschreibungen für den Formularhandler von Zeitgeist
- includes: Klassen und Module von Dritten
- modules: Alle Module, die von dem Eventhandler angesprochen werden. In MVC wären das die Models
- templates: alles, was mit dem Presentation Layer zu tun hat. In MVC die Views
- tests: Alle Unit Tests landen hier
- zeitgeist: Das Framework. In MVC hätte es die Controller-Aufgaben
Und um noch einen Blick auf Zeitgeist an sich zu werfen:
Zunächst wären da unter classes alle Core-Klassen von Zeitgeist. Diese werden unabhängig von dem Projekt immer geladen (auch wenn sich die Funktionalität deaktivieren lässt).

- configuration: Kümmert sich darum, die Konfigurationen eines Projekts zu laden und zu verwalten
- database: Simple Datenbank-Abstraktionsklasse
- debug: Debugging, Tracing, Profiling und SQL-Querylogs
- errorhandler: PHP-Fehlerausgabe (Errors, Warnings)
- eventhandler: Der Handler, die die Module der Applikation steuert
- locale: Verwaltet Sprachpakete
- messagecache/messages: Verwaltet Systemnachrichten
- objectcache: Verwaltet Objekte. Eine Art Multi-Purpose-Cache
- parameterhandler: Programmierbarer Eingabefilter
- session: Verwaltet die Session eines Nutzers
- template: Simple Template-Engine, basierend auf Dreamweaver Templates
- trafficlogger: Speichert alle Aufrufe und Zustände
- userhandler: Kümmert sich (mit den anderen Userklassen) um die Nutzerverwaltung.
In configuration wird Zeitgeist grundsätzlich konfiguriert. Da die Konfiguration in der Applikation selbst überschrieben werden kann, liegt hier nur ein Default-Set.
In includes liegen wieder alle Klassen und Module von Dritten.
In modules liegen alle zusätzlich einbindbaren Module von Zeitgeist: Formularhandler, Payment, Shop, Dispatcher und so weiter. Und schließlich noch die Unit-Tests.
So, das war’s in Kürze. Das sollte als Teaser reichen und vielleicht als Vorlage für einige Fragen dienen.