phppcg - PHP persistent class generator

Der PHP Persistent class generator ermöglicht es, anhand einer Konfiguration (beispielsweise über ein Formular) Klassen mit Persistenzlogik zu generieren.

Auf diese Weise ist eine Vorgehensweise nach dem Prinzip des ORM (object relational mapping) auch ohne zusätzliches, schwerlastiges Framework möglich.

Da die Vorgehensweise bei der Persistierung im Grunde immer ähnlich ist und zu persistierende Klassen ähnliche Funktionalitäten enthalten, ist es sinnvoll einen Generator zu verwenden. Schließlich sind wir doch Entwickler und keine Tippmaschinen, die immer wieder den selben Code runterhacken?

Empfohlene Einsatzbereiche

Dieses Tool bietet sich vor allem an, wenn Projekte nicht durch zusätzliche Frameworks (wie beispielsweise Doctrine) erweitert werden können, andererseits aber eine einheitliche Vorgehensweise für die Objektpersistierung Verwendung finden soll. Zum Beispiel wenn ihr nur ein Modul in einem bestehenden System ergänzen möchtet.
Für komplett neu zu entwerfende Projekte empfehle ich natürlich trotzdem weiterhin den Einsatz eines ausgereiften ORM Frameworks mit mehr Mächtigkeit.

Details

Auf Vererbung wird im Ergebnis des Generators absichtlich verzichtet, um Probleme mit der Einfachvererbung in PHP zu vermeiden. Des Weiteren hat sich gezeigt, dass viele der Funktionen Anpassungen je nach Logik des Objektes benötigen.

Ziel ist es außerdem, den Generator möglichst universell zu halten, sodass beispielsweise verschiedene Datenbank-Abstraktionslayer und Frameworks ergänzt werden können.
In der ersten Version wird die Komponente Zend_Db des Zend Framework unterstützt.
Auch bei der Eingabe der Konfiguration sollen viele Formate ermöglicht werden. Geplant ist zunächst die Eingabe über ein Formular (hier später mit Speicherung früherer Eingaben und Erzeugung von Vorlagen). Später soll die Erzeugung auch über andere Strukturen wie PHP-Arrays, XML, ... möglich sein.

Status

Derzeit befindet sich das Projekt noch in einer Alpha-Version, sodass an dieser Stelle noch kein Sourcecode oder eine Testversion zur Verfügung gestellt wird. Wenn du allerdings Anregungen, Kritik oder den Wunsch hast, an dem Projekt mitzuarbeiten, freue ich mich. Auch Hinweise auf ähnliche Projekte sind gerne willkommen, um eine Liste von Alternativen anzugeben.
Geplantes erstes Release: Dezember 2010

Ähnliche Projekte:

(Später ist an dieser Stelle ein tabellarischer Vergleich geplant)

Comments

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><blockquote>
  • Lines and paragraphs break automatically.
  • Pairs of<blockquote> tags will be styled as a block that indicates a quotation.
  • You can enable syntax highlighting of source code with the following tags: <c>, <cpp>, <css>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <smarty>, <xml>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Textual smileys will be replaced with graphical ones.
  • Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.