Texte aktualisiert
parent
1d5768e704
commit
5fb28a9a90
@ -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.*
|
*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
|
# 1. Ordnerstruktur im Gitea-Repository
|
||||||
|
|
||||||
```
|
```
|
||||||
ad-admin-panel/
|
ad-admin-panel\
|
||||||
├── public/
|
├── public\
|
||||||
│ ├── index.php
|
│ ├── index.php
|
||||||
│ ├── css/
|
│ ├── css\
|
||||||
│ ├── js/
|
│ ├── js\
|
||||||
│ ├── images/
|
│ ├── images\
|
||||||
│ └── assets/
|
│ └── assets\
|
||||||
├── app/
|
├── app\
|
||||||
│ ├── Controllers/
|
│ ├── Controllers\
|
||||||
│ ├── Services/
|
│ ├── Services\
|
||||||
│ │ ├── Ldap/
|
│ │ ├── Ldap\
|
||||||
│ │ ├── Powershell/
|
│ │ ├── Powershell\
|
||||||
│ │ └── Snmp/
|
│ │ └── Snmp\
|
||||||
│ ├── Models/
|
│ ├── Models\
|
||||||
│ └── Helpers/
|
│ └── Helpers\
|
||||||
├── config/
|
├── config\
|
||||||
│ ├── config.example.php
|
│ ├── config.example.php
|
||||||
│ └── config.php
|
│ └── config.php
|
||||||
├── scripts/
|
├── scripts\
|
||||||
│ └── powershell/
|
│ └── powershell\
|
||||||
├── storage/
|
├── storage\
|
||||||
│ ├── logs/
|
│ ├── logs\
|
||||||
│ └── uploads/
|
│ └── uploads\
|
||||||
├── docs/
|
├── docs\
|
||||||
│ ├── Architektur.md
|
│ ├── Architektur.md
|
||||||
│ ├── Deployment.md
|
│ ├── Deployment.md
|
||||||
│ └── API-Endpunkte.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.
|
Hier liegt die komplette PHP-Anwendungslogik.
|
||||||
|
|
||||||
#### **app/Controllers/**
|
#### **app\Controllers\**
|
||||||
- Verarbeiten Requests aus dem Frontend
|
- Verarbeiten Requests aus dem Frontend
|
||||||
- Rufen passende Services auf
|
- Rufen passende Services auf
|
||||||
- Geben Views oder JSON zurück
|
- Geben Views oder JSON zurück
|
||||||
|
|
||||||
Beispiel: `UserController.php` zeigt Benutzerliste an oder verarbeitet Formulare.
|
Beispiel: `UserController.php` zeigt Benutzerliste an oder verarbeitet Formulare.
|
||||||
|
|
||||||
#### **app/Services/**
|
#### **app\Services\**
|
||||||
Hier steckt die "Fachlogik" des Projekts.
|
Hier steckt die "Fachlogik" des Projekts.
|
||||||
|
|
||||||
- keine HTML-Ausgabe
|
- keine HTML-Ausgabe
|
||||||
@ -77,28 +77,28 @@ Hier steckt die "Fachlogik" des Projekts.
|
|||||||
|
|
||||||
Unterordner:
|
Unterordner:
|
||||||
|
|
||||||
**Ldap/**
|
**Ldap\**
|
||||||
- LDAP-Verbindungen
|
- LDAP-Verbindungen
|
||||||
- User anlegen/ändern/löschen
|
- User anlegen/ändern/löschen
|
||||||
- Passwörter setzen
|
- Passwörter setzen
|
||||||
- Gruppen verwalten
|
- Gruppen verwalten
|
||||||
|
|
||||||
**Powershell/**
|
**Powershell\**
|
||||||
- PHP-Wrapper für `.ps1`-Skripte
|
- PHP-Wrapper für `.ps1`-Skripte
|
||||||
- Benutzerverwaltung per AD-Cmdlets
|
- Benutzerverwaltung per AD-Cmdlets
|
||||||
|
|
||||||
**Snmp/**
|
**Snmp\**
|
||||||
- SNMP-Status auslesen
|
- SNMP-Status auslesen
|
||||||
- CPU/RAM/Platten/etc. abrufen
|
- CPU/RAM/Platten/etc. abrufen
|
||||||
|
|
||||||
#### **app/Models/**
|
#### **app\Models\**
|
||||||
Reine Datenobjekte, z.B.:
|
Reine Datenobjekte, z.B.:
|
||||||
- `User.php`
|
- `User.php`
|
||||||
- `ServerStatus.php`
|
- `ServerStatus.php`
|
||||||
|
|
||||||
Hier werden keine Aktionen ausgeführt – nur Struktur & Daten.
|
Hier werden keine Aktionen ausgeführt – nur Struktur & Daten.
|
||||||
|
|
||||||
#### **app/Helpers/**
|
#### **app\Helpers\**
|
||||||
Werkzeuge für:
|
Werkzeuge für:
|
||||||
- Validation
|
- Validation
|
||||||
- kleine Utility-Funktionen
|
- kleine Utility-Funktionen
|
||||||
@ -106,7 +106,7 @@ Werkzeuge für:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **config/**
|
### **config\**
|
||||||
Globale Einstellungen.
|
Globale Einstellungen.
|
||||||
|
|
||||||
**config.example.php**
|
**config.example.php**
|
||||||
@ -120,10 +120,10 @@ Globale Einstellungen.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **scripts/**
|
### **scripts\**
|
||||||
Nicht-öffentliche Skripte, die vom PHP-Code aufgerufen werden.
|
Nicht-öffentliche Skripte, die vom PHP-Code aufgerufen werden.
|
||||||
|
|
||||||
#### **scripts/powershell/**
|
#### **scripts\powershell\**
|
||||||
Hier liegen alle `.ps1` Dateien:
|
Hier liegen alle `.ps1` Dateien:
|
||||||
|
|
||||||
- `New-AdUser.ps1`
|
- `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.
|
Dynamische Dateien, die während der Laufzeit entstehen.
|
||||||
|
|
||||||
#### **storage/logs/**
|
#### **storage\logs\**
|
||||||
- PHP-Logs
|
- PHP-Logs
|
||||||
- Fehlerprotokolle
|
- Fehlerprotokolle
|
||||||
- Aktionen (z.B. wer welchen User angelegt hat)
|
- Aktionen (z.B. wer welchen User angelegt hat)
|
||||||
|
|
||||||
#### **storage/uploads/**
|
#### **storage\uploads\**
|
||||||
- hochgeladene CSV-Dateien für Massenimporte
|
- hochgeladene CSV-Dateien für Massenimporte
|
||||||
- ggf. später Export-Dateien
|
- ggf. später Export-Dateien
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ Dieser Ordner wird **nie** versioniert und kommt in `.gitignore`.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **docs/**
|
### **docs\**
|
||||||
Projektdokumentation.
|
Projektdokumentation.
|
||||||
|
|
||||||
Hier können alle Markdown-Dokumente rein:
|
Hier können alle Markdown-Dokumente rein:
|
||||||
@ -174,11 +174,11 @@ Beschreibung des Projekts
|
|||||||
### **.gitignore im Repository-Root**
|
### **.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:
|
Im Hauptverzeichnis des Repositories liegt eine `.gitignore`-Datei. Sie sorgt dafür, dass keine temporären oder sensiblen Daten versioniert werden:
|
||||||
```
|
```
|
||||||
/vendor/
|
\vendor\
|
||||||
/.idea/
|
\.idea\
|
||||||
/.vscode/
|
\.vscode\
|
||||||
/storage/
|
\storage\
|
||||||
/config.php
|
\config.php
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -188,20 +188,20 @@ Im Hauptverzeichnis des Repositories liegt eine `.gitignore`-Datei. Sie sorgt da
|
|||||||
```
|
```
|
||||||
C:\Web\AdAdminPanel
|
C:\Web\AdAdminPanel
|
||||||
├── public\ # Webroot im IIS
|
├── public\ # Webroot im IIS
|
||||||
├── app
|
├── app\
|
||||||
├── config
|
├── config\
|
||||||
├── scripts
|
├── scripts\
|
||||||
│ └── powershell
|
│ └── powershell\
|
||||||
├── storage
|
├── storage\
|
||||||
│ ├── logs
|
│ ├── logs\
|
||||||
│ └── uploads
|
│ └── uploads\
|
||||||
└── vendor
|
└── vendor\
|
||||||
```
|
```
|
||||||
|
|
||||||
### Wichtige Punkte:
|
### Wichtige Punkte:
|
||||||
|
|
||||||
- IIS zeigt **nur auf `public/`**
|
- IIS zeigt **nur auf `public\`**
|
||||||
- `config/`, `scripts/`, `storage/` bleiben *unsichtbar* für den Browser
|
- `config\`, `scripts\`, `storage\` bleiben *unsichtbar* für den Browser
|
||||||
- PowerShell läuft über einen eigenen Service-Account
|
- PowerShell läuft über einen eigenen Service-Account
|
||||||
- AppPool-Identität erhält nur minimal benötigte Rechte
|
- AppPool-Identität erhält nur minimal benötigte Rechte
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user