From 5fb28a9a90eb1f73202ec09319a350e83ad11e54 Mon Sep 17 00:00:00 2001 From: blaerf Date: Sun, 16 Nov 2025 12:05:18 +0100 Subject: [PATCH] Texte aktualisiert --- Projektstruktur-und-Best-Practices.-.md | 104 ++++++++++++------------ 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/Projektstruktur-und-Best-Practices.-.md b/Projektstruktur-und-Best-Practices.-.md index 1c84838..db7b28f 100644 --- a/Projektstruktur-und-Best-Practices.-.md +++ b/Projektstruktur-und-Best-Practices.-.md @@ -1,4 +1,4 @@ -# Projektstruktur (Vorschlag) +# Projektstruktur *Hinweis: Dies ist lediglich ein Vorschlag meinerseits, um eine klare, sichere und nachvollziehbare Struktur für unser PHP-/AD-Projekt zu gewährleisten.* @@ -9,30 +9,30 @@ Dieses Dokument beschreibt die empfohlene Ordnerstruktur für das Gitea-Reposito # 1. Ordnerstruktur im Gitea-Repository ``` -ad-admin-panel/ -├── public/ +ad-admin-panel\ +├── public\ │ ├── index.php -│ ├── css/ -│ ├── js/ -│ ├── images/ -│ └── assets/ -├── app/ -│ ├── Controllers/ -│ ├── Services/ -│ │ ├── Ldap/ -│ │ ├── Powershell/ -│ │ └── Snmp/ -│ ├── Models/ -│ └── Helpers/ -├── config/ +│ ├── css\ +│ ├── js\ +│ ├── images\ +│ └── assets\ +├── app\ +│ ├── Controllers\ +│ ├── Services\ +│ │ ├── Ldap\ +│ │ ├── Powershell\ +│ │ └── Snmp\ +│ ├── Models\ +│ └── Helpers\ +├── config\ │ ├── config.example.php │ └── config.php -├── scripts/ -│ └── powershell/ -├── storage/ -│ ├── logs/ -│ └── uploads/ -├── docs/ +├── scripts\ +│ └── powershell\ +├── storage\ +│ ├── logs\ +│ └── uploads\ +├── docs\ │ ├── Architektur.md │ ├── Deployment.md │ └── API-Endpunkte.md @@ -59,17 +59,17 @@ Sicherheit. Alles, was sensibel ist (Config, PowerShell, Logs), liegt *außerhal --- -### **app/** +### **app\** Hier liegt die komplette PHP-Anwendungslogik. -#### **app/Controllers/** +#### **app\Controllers\** - Verarbeiten Requests aus dem Frontend - Rufen passende Services auf - Geben Views oder JSON zurück Beispiel: `UserController.php` zeigt Benutzerliste an oder verarbeitet Formulare. -#### **app/Services/** +#### **app\Services\** Hier steckt die "Fachlogik" des Projekts. - keine HTML-Ausgabe @@ -77,28 +77,28 @@ Hier steckt die "Fachlogik" des Projekts. Unterordner: -**Ldap/** +**Ldap\** - LDAP-Verbindungen - User anlegen/ändern/löschen - Passwörter setzen - Gruppen verwalten -**Powershell/** +**Powershell\** - PHP-Wrapper für `.ps1`-Skripte - Benutzerverwaltung per AD-Cmdlets -**Snmp/** +**Snmp\** - SNMP-Status auslesen - CPU/RAM/Platten/etc. abrufen -#### **app/Models/** +#### **app\Models\** Reine Datenobjekte, z.B.: - `User.php` - `ServerStatus.php` Hier werden keine Aktionen ausgeführt – nur Struktur & Daten. -#### **app/Helpers/** +#### **app\Helpers\** Werkzeuge für: - Validation - kleine Utility-Funktionen @@ -106,7 +106,7 @@ Werkzeuge für: --- -### **config/** +### **config\** Globale Einstellungen. **config.example.php** @@ -120,10 +120,10 @@ Globale Einstellungen. --- -### **scripts/** +### **scripts\** Nicht-öffentliche Skripte, die vom PHP-Code aufgerufen werden. -#### **scripts/powershell/** +#### **scripts\powershell\** Hier liegen alle `.ps1` Dateien: - `New-AdUser.ps1` @@ -135,15 +135,15 @@ Diese Skripte laufen auf dem Server – **niemals im Webroot**. --- -### **storage/** +### **storage\** Dynamische Dateien, die während der Laufzeit entstehen. -#### **storage/logs/** +#### **storage\logs\** - PHP-Logs - Fehlerprotokolle - Aktionen (z.B. wer welchen User angelegt hat) -#### **storage/uploads/** +#### **storage\uploads\** - hochgeladene CSV-Dateien für Massenimporte - ggf. später Export-Dateien @@ -152,7 +152,7 @@ Dieser Ordner wird **nie** versioniert und kommt in `.gitignore`. --- -### **docs/** +### **docs\** Projektdokumentation. Hier können alle Markdown-Dokumente rein: @@ -174,11 +174,11 @@ Beschreibung des Projekts ### **.gitignore im Repository-Root** Im Hauptverzeichnis des Repositories liegt eine `.gitignore`-Datei. Sie sorgt dafür, dass keine temporären oder sensiblen Daten versioniert werden: ``` -/vendor/ -/.idea/ -/.vscode/ -/storage/ -/config.php +\vendor\ +\.idea\ +\.vscode\ +\storage\ +\config.php ``` --- @@ -188,20 +188,20 @@ Im Hauptverzeichnis des Repositories liegt eine `.gitignore`-Datei. Sie sorgt da ``` C:\Web\AdAdminPanel ├── public\ # Webroot im IIS -├── app -├── config -├── scripts -│ └── powershell -├── storage -│ ├── logs -│ └── uploads -└── vendor +├── app\ +├── config\ +├── scripts\ +│ └── powershell\ +├── storage\ +│ ├── logs\ +│ └── uploads\ +└── vendor\ ``` ### Wichtige Punkte: -- IIS zeigt **nur auf `public/`** -- `config/`, `scripts/`, `storage/` bleiben *unsichtbar* für den Browser +- IIS zeigt **nur auf `public\`** +- `config\`, `scripts\`, `storage\` bleiben *unsichtbar* für den Browser - PowerShell läuft über einen eigenen Service-Account - AppPool-Identität erhält nur minimal benötigte Rechte