• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zur Strukturierung von Klassen/Modulen

Status
Für weitere Antworten geschlossen.

LisaLotte

Neues Mitglied
Hi,

ich bin Programmiere seit ca. 3 Jahren (mehr oder minder) intensiv in PHP.
Aktuell ist meine Webseite mit ca. 89 PHP-Dateien (Klassen und normale Scripte) doch ganz gut dabei. Die bisherige Struktur schaut wie folgt aus:

/class
/class/mail
/class/feed
/class/xml
/class/...
/conf
/core
/img
/inc
/inc/admin
/inc/develop
/inc/settings
/inc/...
/js
/styles
/tpl

Dabei gibt es je nach Umfang von Klassen und "Modulen" entsprechende Unterverzeichnisse.

Mein Vorhaben ist nun folgendes: Ich möchte gerne das soweit aufsplitten, das es nur noch einen Ordner, z.B. /modules gibt, wo dann weitere Ordner liegen könnten, die alle nach dem gleichen Muster aufgebaut sind, z.B.:

/modules
/modules/register
/modules/register/info.txt
/modules/register/classes
/modules/register/styles
/modules/register/inc
/modules/register/...

Habt ihr schon mal ähnliches realisiert?
Ich bin auf jeden Fall für Vorschläge allerart offen :-)



LG
Lisa
 
Übersichtlicher wäre auf jeden Fall nur ein Ordner modules.

Ich habe bisher all meine (abgebrochenen) Projekte so gestartet und habe einfach alle in der index.php und Umwege eingebunden. Sieht für Unwissende nicht einfach aus sodass sich auch kein Newbie am Code kopieren versucht, sollte er rankommen.

Was ich dazu nur sagen kann ist: Mach in der Config ne Variable $mod_dir und speicher da den Pfad rein, dann kannste schneller Sachen einbinden, wenn du nicht den ganzen Pfad schreiben musst.
 
also am besten machst du einen ordner in den du alle dateien packst auf die man von außen drauf zugreifen soll also nur bootstrap dateien wie index.php oder so und bilder css und js darunter dann der rest.

deinen autoloader bastelst du am besten so das du deine klassen so benennst wie die ordner in denen sie liegen und dazu dann noch ne klassenbezeichnung. :)

also hier mal ne ganz einfache ordnerstruktur

/
/html/
/classes/
/classes/user/
/classes/news/
/classes/news/groups

und dann z.b. die user klasse einfach User.php nennen dann wird geguckt ob ein ordner mit dem namen user existiert und wenn dadrin eine datei ist die User.php heißt dann die laden

dann hast du z.b. eine klasse die heißt UserRights.php da guckt er ob es einen ordner User gibt dann ob es eine datei UserRights.php gibt und wenn ja dann laden

jetzt hast du eine NewsGroupsLoader.php wenn du die haben willst guckt er ob es einen ordner News gibt dann ob es einen ordner Groups gibt und dann ob es darin die datei NewsGroupsLoader.php gibt und wenn nicht dann geh wieder in den news ordner und guck obs die datei da gibt

so würde ich es machen und den dateinamen anhandt der großen buchstaben zu splitten dürfte die leichteste übung für dich sein wenn du schon 3 jahre mit php arbeitest ^^




SO würde ich es machen :)
 
Übersichtlicher wäre auf jeden Fall nur ein Ordner modules.
Dan habe ich doch auch nur :-)
Ich habe nur versucht visuell darzustellen, wie das ganze rekursiv aussehen könnte.



@Slibbo

Ich sehe in deiner Lösung leider keinen großen nutzen, da ich somit in einem Ordner-Chaos landen werden *gg*.

Ich sehe einfach den Vorteil durch die Modularen-Verzeichnisstrukturen, dass sich die Daten für das entsprechende Modul alle in einem Verzeichnis befinden, und somit die Übersicht und der Zusammenhalt gewahrt bleibt.
Entferne ich ein Modul, muss ich nicht im Ordner Styles, Classes, tpl etc. die entsprechenden Unterordner löschen, sondern lösche einfach den einen Ordner, und gut ist.

Vielleicht schau ich mir auch mal ein paar CMS-Lösungen ab, und deren Lösung für das einbinden fremder Module ab :D


LG
Lisa
 
Ich habe deine Meinung nur bestätigt und ich weis, dass es nur ein Ordner sein wird.
Ich habe das mit deinem bisherigen Ordner-Wirrwarr verglichen :roll:
 
glaub mir mit gruppn und untergruppen ist das alles viel übersichtlicher aber naja deine modulare struktur erlaubt den zugriff auf ALLE php dateien...

die ganzen js und html und css dateien musst du sowieso immer wieder manuell entfernen, allerdings könntest du auch einfach ein script schreiben das dieses für dich erledigt denn wenn plätlich z.b. der ordner

/classes/news/ fehlt dann wird das script wohl selber kapieren welche dateien fehlen wenn du sie entsprechend umgenannt hast.

der einzige grund der gegen meinen vorschlag spricht ist faulheit ^^
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben