SLAED CMS Architektur

SLAED CMS basiert auf einer modularen Architektur mit klarer Trennung der Verantwortlichkeiten zwischen Komponenten.

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:

  1. Einstiegspunkt (index.php)
  2. Kernladung (core/core.php)
  3. Sicherheitsinitialisierung
  4. Modulbestimmung über name-Parameter
  5. Zugriffsprüfung
  6. Modulladung
  7. Inhaltsrendering
  8. Vorlagenanwendung
  9. Ausgabe