CMS - Der Dirigent » Entwicklung » DeDi-Entwicklung

Neue Umfrage | neues Thema | Antworten

Artikelmanagment für DeDi, in Entwicklung

« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken

favore
Geschrieben am: 14. May 2005 - 17:53


Unregistered








Hallo!

Ich wurde gebeten hier zu erklären, was denn dieses mysteriöse Artikelmanagement können wird.

Zunächst einmal muss ich euch enttäuschen. Ich bin bei weitem nicht soweit und habe mit einem neuen Ansatz angefangen.

Basieren wird das Artikelmanagement auf einer dbOO-Klasse, die ich gerade schreibe. Das ist ein objektrelationaler Ansatz.

Sinn und Zweck sind folgende. Eine Datenbankstruktur wird nicht länger in phpMyAdmin aufgebaut sondern wird mit XML umschrieben. Diese XML-Datei enthält die Struktur inkl. Felder und ggf. ForeignKeys (auch wenn mySql oder SQL light es eigentlich nicht unterstützen.) Diese Klasse basiert selber euf einer Datenbankabstraktion (und abstrachiert diese praktisch nochmals wink.gif )

Anhand dieser XML-Datei wird einerseits die Datenbankstruktur in einer der unterstützten Datenbanken erzeugt und andererseits werden neue Klassen generiert. Dieser Ansatz hat im Vergleich zum normalen mySQL-Zugriff kaum Performanceeinbüßen, da die Klassen ganz selten (Tabelle anlegen / bearbeiten) erzeugt werden. Wie bei der Template-Engine Smarty sind die erzeugten Klassen ganz normale PHP-Dateien, liegen im Dateisystem und arbeiten auch dementsprechend genauso schnell.
Was bring uns dieser umständliche Ansatz?
Der Vorteil ist, dass die Datenbank objektorientiert angesprochen werden kann. Der Aufbau einer Tabelle ist wie eine Klasse. Jede einzelne Zeile ist ein Objekt. Die einzelnen Felder sind die Eigenschaften. Anhand der foreignkeys- kann man ganz einfach Verknüpfungen schaffen und diese werden auch objektorientiert dargestellt. Theoretisch wird in einer Anwendung kein SQL-mehr benötigt.
Angenommen man schreibt eine User-Verwaltung. Die Benutzerdaten liegen in einer Tabelle namens "user". Das bedeutet dass eine Klasse "User" existiert. Möchte ich einen Benutzer anlegen, brauche ich nur folgende zeile.


mehr CODE
$user = new User();

Will ich eine Benutzerverwaltung schreiben, muss ich nur die Klasse User erben und erweitern. Um das Lesen und Speichern der Daten kümmert sich die Klasse automatisch.

Ein weiterer Vorteil ist, dass man ganz einfach die Struktur und die Inhalte der Datenbank in ein allgemeines XML-Format exportieren kann und somit komplette Datenbankinhalte z.b. von mySQL auf Oracle portieren kann.

Eine Erweiterung wird ein NestedsSets-Modell sein, welhes erlaubt die Objekte zu schahteln (z.b. wie die Ordner und Dateien bei einem OS)

Solche Ansätze gibt es bereits - z.B. Propel, DB_DataObject, etc. Allerdings sind diese Ansätze immer nicht ganz das wahre, weshalb ich mich entschloßen habe selber einen möglichst minimalistischen Ansatz zu waagen.

Auf diesem System basiert das Artikelmanagement. Ein Artikel steht dabei für den Aufbau eines Artikels (alles klar *lol*). Das kann einmal ein News-Eintrag, einmal ein Forumbeitrag sein. Als Beispiel nehem ich einen News-Eintrag.
Also besteht so ein Artikel beispielsweise aus
- Header (String)
- Date (date)
- Text (text)
- Counter (int)

Dies kann über eine Maske angelegt werden. Im Hintergrund wird dementsprechend eine Tabelle angelegt. Für jeden Artikeltyp gibt es eine eigene Tabelle. Bisher konnte/musste jedes Modul eigene Tabellen anlegen und es kam zu einem Chaos. Mit dem neuen System wird alles zentral von dieser Klasse verwaltet.
Somit ist ein News-Eintrag-Artikel eine Klasse mit den Eigenschaften Header, Date, Text, Counter. Jeder einzelne Eintrag ist ein Objekt.

Dieser Ansatz zentralisiert und ordnet den ganzen Aufbau und ist enorm flexibel. So kann man z.B. die DeDi-Tags anpassen. Dann könnte man mit einfachen DeDi-befehlen selber programmieren (z.B. ein Gästebuch).

Diesen Ansatz hat unter Anderem das Python-CMS Zope.

Ich hoffe ich konnte in diesem recht kurzen Post diesen Ansatz und dessen Vorteile erklären. Der name Artikelmanagement ist etwas verwirrend, zumal zwei verschiedene Sachen Artikel heißen. Uns ist leider noch kein besser Name eingefallen...

Schönes Wochende noch! smile.gif
Top
rfurrer
Geschrieben am: 14. May 2005 - 20:18


Anfänger


Gruppe: Members
Beiträge: 146
Mitgliedsnummer: 1031
Mitglied seit: 27. Jan 2005


Hallo

So wie das Manuel und mvsxyz beschreiben, wäre das eine tolle Sache. Man könnte damit zBsp. auch Mitgliederlisten aufbauen lassen, die von den Benutzern selber gepflegt werden. Genial.

Dazu wäre es aber evt. noch praktisch, weiterer Felder zu haben. Damit könnte man Kategorien anlegen (Vorstand, Kommissionen, oder auch Artikel Gruppen). Das wäre sicher noch praktisch, auch für die Kategorien Beschreibungen zu hinterlegen

Gruss

Rolf

--------------------

Lokal: DeDi 1.01; XAMPP | Apache/1.4.12 & PHP 4.3.10 | MYSQL 4.1.10 & phpMyAdmin 2.6.1
Top    

Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

1 Antworten seit 14. May 2005 - 17:53

Thema abonnieren | Thema versenden | Thema drucken


Neue Umfrage | neues Thema

Home | Das Projekt | Download | Entwicklung | Dokumentation | Forum | Impressum