'Best Practise' - Strukturierung eines großen Projekts

Hallo zusammen,

ich bin momentan dabei, mir Yii genauer anzusehen. Bevor ich allerdings eine endgültige Entscheidung für dieses Framework treffen kann, habe ich noch ein paar offene Fragen zu klären. Einige davon konnte ich nun schon selbst beantworten und habe auch ein kleines Test-Projekt hinter mir.

Nun stehe ich vor einer größeren Problematik: Das System, welches mein nächstes Projekt ist, besteht aus mehreren Teil-Systemen, welche untereinander zwar auf Datenbank-Ebene integriert sein sollen, allerdings jeweils eben doch einen recht klar abgegrenzten Bereich behandeln.

Ich gehe nun davon aus, dass die Abgrenzung auf Datenbank-Ebene am besten mithilfe von Tabellen-Präfixen vorgenommen wird. Auf Framework-Ebene habe ich nun noch keine eindeutige Antwort finden können. Offenbar besteht die Möglichkeit, entweder Module zu nutzen, oder aber mit Unterordnern zu arbeiten.

Die Frage nun: Ist eine der beiden Optionen der anderen vorzuziehen, was sind die Vor- bzw. Nachteile?

Danke für die Hilfe

Viele Grüße

Hi und willkommen,

sorry, aber deine Frage ist schon sehr allgemein gehalten. Was genau meinst du mit "Abgrenzung auf Datenbank-Ebene"? Prinzipiell lässt sich mit Yii quasi alles machen. Yii gibt einfach eine sehr schöne Ordnung für deinen Quelltext vor und kommt auch gleich mit sehr nützlichen Komponenten daher. Wenn dir die nicht zusagen, kannst du fast alles durch eigenen Komponenten austauschen. Allerdings erfordert das ganze eine gewisse Eingewöhnungsphase.

Und wenn man keine Scheu davor hat, in den Framework Quellcode einzutauchen (welcher m.M.n. sehr gut strukuriert und dokumentiert ist) wird man kaum jemals auf ein unlösbares Problem stoßen. Zumindest kam mir seit den letzten 3 Jahre keins mehr unter - und ich arbeite fast aussschließlich mit Yii …

Hi Mike,

Vielen Dank für deine Antwort. Vielleicht probier ichs mal so: Wir haben hier ein System, welches sich in verschiedene Anwendungsgebiete unterteilen lässt: Im ersten Teilsystem wird eine Personengruppe A verwaltet, in einem weiteren eine Gruppe B und so weiter… Zu jeder Gruppe gehört eine Menge an spezifischen Models (Beispiel: Verwaltung unterschiedlicher Stakeholder eines Unternehmens: Kunden, Lieferanten,… in einem gemeinsamen System). Damit ergibt sich für jede Gruppe ein eigenständiges Teilschema (Tabellen für Kundendaten, Tabellen für Lieferantendaten,…) in der Datenbank. Die Tabellennamen erhalten dabei ein Präfix, welches sie dem jeweiligen Teilschema zuordnet.

Streng genommen könnte nun jede Anwendung Stand-Alone betrieben werden, jedoch sollen die Personengruppen miteinander in Beziehung gesetzt werden können, weshalb wir ein übergreifendes System implementieren wollen. Wie könnte diese Strukturierung nun im besten Fall auf Model-, View- und Controller-Ebene vorgenommen werden? Sollte für jedes Teilschema einfach ein Unterordner in model (bzw. view/controller) angelegt werden? Oder eher ein eigenes Modul pro Teilsystem erstellt werden?

Viele Grüße

Ich sag mal, es gibt einfach 1000 Möglichkeiten, wie du so eine Aufteilung erreichen kannst. Je nach Fall können Module günstiger sein (klingt bei dir fast so) oder Unterordner in /models. Deshalb ist es auch schwer eine allgemeingültige Antwort zu geben. Irgendwo ist das ja auch euer Job, eine für euren Entwicklungsprozess funktionierende Aufteilung zu finden. Yii wird dir dabei aber in der Regel nicht im Weg stehen.

Ich würd sagen: Startet doch mal mit Modulen für jeden Teilbereich. Damit hast du auf jeden Fall eine gute Abgrenzung, kannst aber immer noch auf Sachen aus den anderen Modulen zugreifen. Alles ist möglich…

Dacht ichs mir fast. Danke für die Erläuterungen!