SLAED CMS Architektur
SLAED CMS basiert auf einer modularen Architektur mit klarer Trennung der Verantwortlichkeiten zwischen Komponenten.
Inhaltsverzeichnis
Architekturübersicht
SLAED CMS wurde mit Leistung, Stabilität und Sicherheit im Hinterkopf entwickelt. Das System folgt einem Schichtenarchitekturansatz:
┌─────────────────────────────────────────────────────────────┐
│ SLAED CMS Architektur │
├─────────────────────────────────────────────────────────────┤
│ Frontend-Schicht │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Vorlagen │ │ Designs │ │ Blöcke │ │
│ │ System │ │ Engine │ │ System │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Anwendungsschicht │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Module │ │ Routing │ │ Sicherheit │ │
│ │ System │ │ Engine │ │ Schicht │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Kernschicht │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Kern │ │ Datenbank │ │ Benutzer │ │
│ │ Engine │ │ Zugriff │ │ Verwaltung │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Datenschicht │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL/ │ │ Datei-Cache │ │ Speicher │ │
│ │ MariaDB │ │ System │ │ System │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
Kernkomponenten
1. Kernsystem
Ort: /core/
Der Kern behandelt die grundlegende Funktionalität:
- core.php - Hauptfunktionen und Konstanten
- security.php - Sicherheitssystem
- template.php - Vorlagen-Engine
- user.php - Benutzerverwaltung
- admin.php - Administrationsfunktionen
2. Konfigurationssystem
Ort: /config/
Alle Systemeinstellungen werden in separaten Konfigurationsdateien gespeichert:
- config_db.php - Datenbankeinstellungen
- config_security.php - Sicherheitsparameter
- config_*.php - Modul-Konfigurationen
3. Modulsystem
Ort: /modules/
Jedes Modul repräsentiert eine separate Funktionalität:
modules/
├── news/ # Nachrichtensystem
├── pages/ # Statische Seiten
├── forum/ # Forum
├── shop/ # E-Commerce
├── files/ # Dateiarchiv
├── media/ # Mediengalerie
├── users/ # Benutzerverwaltung
└── voting/ # Abstimmungssystem
4. Vorlagensystem
Ort: /templates/
Unterstützt mehrere Designs:
templates/
├── default/ # Standard-Design
├── lite/ # Leichtgewichtiges Design
└── admin/ # Admin-Design
Sicherheitsschicht
SLAED CMS implementiert mehrschichtige Sicherheit:
1. Dateizugriffsschutz
if (!defined('MODULE_FILE') && !defined('ADMIN_FILE'))
die('Unerlaubter Dateizugriff');
2. Eingabevalidierung
function getVar($method, $name, $type, $default = '')
3. SQL-Injection-Prävention
Durch vorbereitete Anweisungen
4. CSRF-Schutz
Über Tokens
5. CAPTCHA-Integration
reCAPTCHA-Unterstützung
Caching-System
Mehrstufiges Caching:
1. Browser-Caching
function setCache($id = '') {
if ($id === "1") {
$max = $cached * 86400;
header('Cache-Control: public, max-age='.$max);
}
}
2. Datei-Caching
- CSS-Dateien:
/config/cache/
- JavaScript-Dateien:
/config/cache/
- Inhalt: konfigurierbare Lebensdauer
3. Ressourcen-Komprimierung
function getCompressCss($css)
function getCompressCode($code)
function getCompressHtml($html)
Datenbankschicht
Datenbank-Abstraktionsschicht unterstützt:
- MySQL/MariaDB (primär)
- Vorbereitete Anweisungen
- Automatische Escapierung
- Verbindungspooling
Tabellenstruktur
-- Haupttabellen
{prefix}_modules -- Systemmodule
{prefix}_categories -- Kategorien
{prefix}_users -- Benutzer
{prefix}_groups -- Benutzergruppen
{prefix}_blocks -- Interface-Blöcke
{prefix}_config -- Konfiguration
Anfrage-Lebenszyklus
Ablauf der Anfrageverarbeitung:
- Einstiegspunkt (
index.php
) - Kernladung (
core/core.php
) - Sicherheitsinitialisierung
- Modulbestimmung über
name
-Parameter - Zugriffsprüfung
- Modulladung
- Inhaltsrendering
- Vorlagenanwendung
- Ausgabe