Hi,
Ich bin neu hier und hoffe hier das richtige Forum für mein Probem gefunden zu haben. Ausserdem würde es mich freuen wenn mein Thema wie bei allen anderen grösseren Foren nicht einfach in der Masse untergehen würde, und wir eine gute Lösung dafür finden.
Ich schreibe zurzeit ein PHP5-MVC-Framework für den privaten Gebrauch, weil ich mir erhoffe dadurch einige Dinge zu lernen und Frameworks danach besser verstehen und benutzen zu können.
Zurzeit stehe ich aber noch vor einem Aufbau-technischen Problem, zudem mir keine akzeptable Lösung einfällt.
Ich versuche in meinem Framework ein Modulsystem zu integrieren.
Ein Modul besteht aus einem Modul-Controller und den benötigten Dateien wie z.B Views und Models oder auch andere Klassen, welche man sonst schwer einordnen kann. Diese Module sollen Libraries ersetzen, oder deren Möglichkeiten zumindest erweitern. Ein Modul soll genau wie eine Library genutzt werden können, und soll deshalb auch den gleichen Gesetzen der Ordner-Struktur unterliegen, um den Entwickler nicht zu verwirren oder zur Unterscheidung zwischen Modulen und Libraries zwingen zu müssen.
Zwei Beispiele: Die Datenbank-Library benötigt Datenbank-Treiber, und die Scaffolding-Library eigene Views und Models. Diese Dateien möchte ich bündeln, um die Übersicht und Verwaltung zu vereinfachen und zu klären.
Ein Modul soll jeweils eine eigene Config-Datei besitzen, welche zur besseren Übersicht in einem abgesonderten Config-Ordner platz finden soll.
Auch Interfaces die von den Klassen eines Moduls benötigt wird, sollte irgendwie zum Modul gehören.
Nun habe ich zu dem ganzen mal 2 Vorschläge:
1) Ein Modul ist eine Erweiterung zu einer Library. Die Library kontrolliert die Dateien des Moduls und nutzt sie. Die Config ist in einem abgesonderten Ordner, genauso wie die Interfaces, damit diese auch von anderen Klassen genutzt werden können. => Nachteil: Es wird jeweils ein eigenes System zur Erweiterung von Libraries und Interfaces und den Modul-Dateien benötigt und die Dateien welche ein Modul benötigt liegen teilweise verstreut.
2) Jedes Modul hat einen Modul-Controller, welcher im Vergleich mit der ersten Möglichkeit die Aufgabe der Library übernimmt. Jede Library ist ein Modul und bündelt somit die für die Library benötigten Dateien, mitsamt den Interfaces. => Nachteil: Interfaces können nicht von Klassen anderer Module genutzt werden, und die Erstellung einer einfachen Library wird durch zusätzliches Anlegen eines Modul-Ordners erschwert. Dafür sind alle Dateien die ein Modul benötigt gebündelt.
Habt ihr bessere Ideen, Verbesserungsvorschläge, Tipps oder ähnliches?
Vielen Dank im Voraus!
greez
bitsnack
Ich bin neu hier und hoffe hier das richtige Forum für mein Probem gefunden zu haben. Ausserdem würde es mich freuen wenn mein Thema wie bei allen anderen grösseren Foren nicht einfach in der Masse untergehen würde, und wir eine gute Lösung dafür finden.
Ich schreibe zurzeit ein PHP5-MVC-Framework für den privaten Gebrauch, weil ich mir erhoffe dadurch einige Dinge zu lernen und Frameworks danach besser verstehen und benutzen zu können.
Zurzeit stehe ich aber noch vor einem Aufbau-technischen Problem, zudem mir keine akzeptable Lösung einfällt.
Ich versuche in meinem Framework ein Modulsystem zu integrieren.
Ein Modul besteht aus einem Modul-Controller und den benötigten Dateien wie z.B Views und Models oder auch andere Klassen, welche man sonst schwer einordnen kann. Diese Module sollen Libraries ersetzen, oder deren Möglichkeiten zumindest erweitern. Ein Modul soll genau wie eine Library genutzt werden können, und soll deshalb auch den gleichen Gesetzen der Ordner-Struktur unterliegen, um den Entwickler nicht zu verwirren oder zur Unterscheidung zwischen Modulen und Libraries zwingen zu müssen.
Zwei Beispiele: Die Datenbank-Library benötigt Datenbank-Treiber, und die Scaffolding-Library eigene Views und Models. Diese Dateien möchte ich bündeln, um die Übersicht und Verwaltung zu vereinfachen und zu klären.
Ein Modul soll jeweils eine eigene Config-Datei besitzen, welche zur besseren Übersicht in einem abgesonderten Config-Ordner platz finden soll.
Auch Interfaces die von den Klassen eines Moduls benötigt wird, sollte irgendwie zum Modul gehören.
Nun habe ich zu dem ganzen mal 2 Vorschläge:
1) Ein Modul ist eine Erweiterung zu einer Library. Die Library kontrolliert die Dateien des Moduls und nutzt sie. Die Config ist in einem abgesonderten Ordner, genauso wie die Interfaces, damit diese auch von anderen Klassen genutzt werden können. => Nachteil: Es wird jeweils ein eigenes System zur Erweiterung von Libraries und Interfaces und den Modul-Dateien benötigt und die Dateien welche ein Modul benötigt liegen teilweise verstreut.
2) Jedes Modul hat einen Modul-Controller, welcher im Vergleich mit der ersten Möglichkeit die Aufgabe der Library übernimmt. Jede Library ist ein Modul und bündelt somit die für die Library benötigten Dateien, mitsamt den Interfaces. => Nachteil: Interfaces können nicht von Klassen anderer Module genutzt werden, und die Erstellung einer einfachen Library wird durch zusätzliches Anlegen eines Modul-Ordners erschwert. Dafür sind alle Dateien die ein Modul benötigt gebündelt.
Habt ihr bessere Ideen, Verbesserungsvorschläge, Tipps oder ähnliches?
Vielen Dank im Voraus!
greez
bitsnack
Kommentar