itebob
Goto Top

PHP: Sinnvolle Projektstruktur

Ich bin dabei, auf einem Debian-System ein PHP-Projekt zu realisieren. Wenn es darum geht, eine sinnvolle Projektstruktur zu haben, welche Vorteile/Nachteile aus der Sicht Sicherheit/ Programmieraufwand/ Übersichtlichkeit haben diese zwei Varianten:

Variante A

/home/PHPModul
/home/PHPModul/User1
/home/PHPModul/user2
...
/home/PHPModul/userZ


Variante B

/home/PHPModul
/home/User1
/home/user2
...
/home/userZ

wobei in UserXY-Verzeichnissen den Usern Webspace zugeteilt ist. Das PHPModul muss Lese- und Schreibrechte in allen User-Verzeichnissen haben. Mir gefällt die Variante B besser, da ich eine Ebene in der Verzeichnisstruktur weniger habe.

Gruss, Gustav

Content-Key: 280214

Url: https://administrator.de/contentid/280214

Printed on: May 11, 2024 at 02:05 o'clock

Member: Clijsters
Clijsters Aug 17, 2015 at 12:38:32 (UTC)
Goto Top
Hallo Gustav,

verrate uns doch etwas mehr über das Projekt, welches du realisieren möchtest.
Was soll es tun, wie soll das Ziel (Nicht die Verzeichnisstruktur) aufgebaut sein?

Mir persönlich (ohne deine Anforderungen zu kennen) würde zum Beispiel eher Variante A zusprechen.

LG
Dominique
Member: itebob
itebob Aug 17, 2015, updated at Aug 18, 2015 at 09:37:14 (UTC)
Goto Top
Moin,

Zitat von @Clijsters:
verrate uns doch etwas mehr über das Projekt, welches du realisieren möchtest.
Was soll es tun, wie soll das Ziel (Nicht die Verzeichnisstruktur) aufgebaut sein?

Das PHP-Projekt an sich ist für den Server-Betreiber eine Admin-Oberfläche für die Template-Sammlungen. Der Server-Admin schaltet für einzelne User bestimmte Templates frei. Die
  • Inhalte der User-Websites, die in diesen Templates eingebettet sind
  • und die User-Zugangsdaten plus User-Rollen
werden in der Datenbank gespeichert.

Gustav
Member: Clijsters
Clijsters Aug 18, 2015 at 06:48:13 (UTC)
Goto Top
Soll das heißen, jeder User hat eigene Templates, die in Verzeichnissen liegen?
Dann wird Content aus einer DB geholt und in die Templates injiziert?

Die Verzeichnisstruktur ist dann für die Templates?

Wie steht die Beziehung zw. User und Template? 1:1 / 1:n / n:n


LG
Member: itebob
itebob Aug 18, 2015 updated at 08:37:21 (UTC)
Goto Top
Zitat von @Clijsters:
Soll das heißen, jeder User hat eigene Templates, die in Verzeichnissen liegen?
ja
Dann wird Content aus einer DB geholt und in die Templates injiziert?
korrekt
Die Verzeichnisstruktur ist dann für die Templates?
ja
Wie steht die Beziehung zw. User und Template? 1:1 / 1:n / n:n

Gute Frage. Danke dafür. Und dafür mag ich die administrator.de-Community face-wink.

Die Templates werden u.a. aus den Templates-Schnipseln generiert.
  • Evtl. wird es ein "Basistemplate" geben, das die Pflicht-Bestandteile einer HTML-Seite enthält.
  • dann wird es für einzelne User freigeschaltete Template-Schnipsel geben, die:
    • JavaScripts
    • CSS-Formatierungen
die in einer n:n-Beziehung zu der User-Menge stehen, einbinden. Es ist in der praktischen Anwendung der gesamten PHP-Lösung zu klären, ob ein Basistemplate sinnvoll und praxistauglich ist.

Die für die User freigeschaltete Template-Schnipsel können von den Usern selbst aktiviert/deaktiviert werden.
Member: Clijsters
Solution Clijsters Aug 18, 2015, updated at Aug 21, 2015 at 08:43:46 (UTC)
Goto Top
Nein.
Nein.
Nein.
Das mit den Basistemplates ist ja nett, aber spätestens, wenn dann ein einziger User eine Änderung an einer Stelle braucht, die Teil des globalen Templates ist, ist das Konstrukt wieder über'm Haufen. (Oder man fängt an, sich JS-Brückchen zu bauen...)

Ich würde - ganz simpel - noch etwas schlimmer vorgehen:
Templates/
Templates/templ1
Templates/templ2
[...]
Base/
Base/HeaderStd
Base/FooterStd
Base/HeaderSmall
[...]
Und Berechtigungen in einer DB ablegen. So können n:n Zugriffe komfortabel verwaltet werden.
Das Konzept mit getrenntem Header- und Footerbereich ist sehr gewöhnungsbedürftig, ich finde es in kleineren Projekten aber immer angenehmer.
Da sind deiner Fantasie aber generell keine Grenzen gesetzt.

Ich verwende für kleine Homepages mit CMS z.B. gerne Kirby. Du hast ein Template, z.B. "home.php" / "projects.php" etc.
Dann sog. snippets, wie z.B. "header.php", "footer.php", "werbungsleisteanderrechtenseite.php"..., welche du nach Belieben in deinen Templates abrufst.

Wenn du nun ein CMS-Backend hast, welches mittels intelligenter, eigener ACLs Rechte auf die jeweiligen Teile vergibt, kann man damit auch sicher gut arbeiten.

Was soll das denn am Ende genauer werden? So ganz hältst du dich da ein wenig zurück.
Also, was macht wer mit diesen Templates und wofür sind diese?

LG
Member: itebob
itebob Aug 20, 2015 at 17:56:27 (UTC)
Goto Top
danke für dein ausführliches Kommentar. Deine Anregungen fließen in die Projektstruktur ein.


Zitat von @Clijsters:

Was soll das denn am Ende genauer werden?

Im Grunde genommen wird es ein CMS sein - Schritt-für-Schritt.

Also, was macht wer mit diesen Templates und wofür sind diese?
Die Templates sind für die Kunden, die Webspace und CMS dazu mieten und eigene Website mit Innhalten füllen.