Logaholic.de

Avatar

web development

entropy project: Hello World!

Die Tage war es endlich so weit: nach zweimaliger und von vorne beginnender Programmierung habe ich den Prototypen meines PHP5 MVC Micro-Frameworks bei Github online gestellt – entropy project. Der Projekt-Name selbst lag mir schon seit Jahren auf der Zunge, es fehlte nur ein passendes Projekt.

Wie in einem vorherigen Blog-Post schon erwähnt, stört mich momentan enorm die Größe, Zähigkeit und vorallem Geschwindigkeit von den heutigen MVC-Frameworks. Dies war der Grund, entropy zu entwickeln. Nachdem ich mir also viele Micro- und MVC-Frameworks seitens Ruby angeschaut habe, fand ich eine Mischung aus Groß- und Klein, sowie eine Modularisierung und den Einbau eines flexiblen Workflows, als beste Lösung.

Vorbild in PHP waren symfony, Agavi, das Zend Framework sowie Mojavi. Inspiriert durch die tolle Arbeit der Entwickler von Merb, Camping und Rails habe ich dann versucht, die besten Eigenschaften aller zu Verknüpfen: daher ist entropy ist das Kern-Paket, welches die absoluten Basis-Mittel liefert. Alles was zusätzlich genutzt werden möchte, kann via Plugin nachinstalliert werden (sofern vorhanden).

entropy lehnt sich sehr stark an symfony an, daher gibt es einen Context, eine Projekt- und Applikations-Konfiguration, einen zentralen Controller, ein Request- und Response-Objekt, sowie ein minimales Routing (ähnlich dem PathInfo-Router von symfony). Zusätzlich dazu gibt es noch die eigentlichen Actions sowie die dazugehörigen Views – mehr nicht. Entwickler, welche schon mit symfony vertraut sind, werden sich in entropy daher sehr schnell zurechtfinden.

Verknüpft durch einen Event-Dispatcher arbeiten alle Klassen mehr oder weniger autark, können aber ohne viel Aufwand miteinander kommunizieren. Die Events dienen dazu, seine eigenen Modifikationen einzubringen bzw. das System um bestimmte Abläufe zu erweitern: Plugins und eigene Klassen können sich so ganz einfach in den Workflow einbringen, ohne den eigentlichen Code modifizieren zu müssen.

Im Moment befindet sich das ganze noch im sehr frühen Entwicklungs-Stadium, es sind zum Beispiel noch nicht alle Events an den richtigen Stellen eingebaut, die Unit-Tests sind noch in Arbeit, ebenfalls steht eine Phing-Integration ganz oben auf meiner ToDo-Liste. Da ich viele Teile des Codes von symfony übernommen habe, ist auch in dieser Hinsicht noch etwas Verbesserungsbedarf von Nöten: die API abspecken, die API vereinheitlichen, eventuelle Typos fixen, die Inline-Dokumentation überarbeiten und noch vieles mehr.

Ebenfalls müssen noch diverse Plugins geschrieben werden, die Datenbank-Anbindung (inklusive Doctrine), eine Session- und User-Verwaltung, modulares Caching, ein komplexeres Routing, Formulare und Möglichkeiten zum Debuggen. Entsprechende Repositories finden sich schon in meinem Github-Profil.

Interessierte sind herzlich eingeladen mich zu unterstützen. Über erste Erfahrungsberichte, sowie Bug-Reports, würde ich mich sehr freuen.

Bookmark and Share

Related posts:

  1. PHP Micro Frameworks
  2. symfony 1.1
  3. Github Mirror für symfony
  4. Windows Vista und NFS
  5. Review: Lightweight PHP5 OOP MVC framework “simples” by Daniel ’smacks’ Harrington

2 Comments, Comment or Ping

  1. Petze

    entropy project: That page doesn’t exist!

Reply to “entropy project: Hello World!”