1b235ded34698aa4d8694f68d6f1565401b5a5bb
🏗️ Backend MVC Framework - Die Entwickler-Bibel
Dieses Framework ist eine performante, leichtgewichtige und modulare PHP-Architektur für professionelle Backends und Dashboards.
🏛️ 1. Kern-Architektur & Lifecycle
Der Weg einer Anfrage (Request Lifecycle)
- Entry Point: Alle Requests werden zentral über
WEBROOT/index.php(Front Controller) verarbeitet. - Bootstrap: Initialisierung von Session, Autoloader und globalem Error-Handling (
Logger). - Routing: Der
Routerprüft die Service-ID ausGET['service']gegen dieroutes.php. - Security: Ausführung von Middlewares (
auth,admin). - Controller: Instanziierung des Ziel-Controllers und Ausführung der Logik.
- Layout & Views: Zusammensetzung der UI mittels Block-System und Finalisierung des HTMLs.
Verzeichnisstruktur
/WEBROOT: Öffentlich erreichbarer Ordner (index.php, APIs, Assets)./src/MVC/Core: Die Framework-Engine (Controller, Model, Router, View, Layout)./src/MVC/Classes: Mächtige Helper-Klassen (Auth, Form, Storage, Mailer, Logger)./src/MVC/Controller: Deine Business-Logik./src/MVC/Model: Daten-Abstraktion (CRUD)./src/MVC/View: HTML-Templates.
🚦 2. Routing & Sicherheit
Routen definieren (src/config/routes.php)
$router->add('service_id', ControllerClass, 'method', ['middleware']);
Middlewares
auth: Erfordert Login.admin: Erfordert Admin-Status.
💾 3. Datenbank-Layer (The Power-Engine)
databaseMethods.php (Low-Level)
Bietet sichere Wrapper für mysqli Prepared Statements:
DatabaseShow(): Flexibles SELECT.DatabaseInsert(): Einfaches Einfügen von Daten.DatabaseShowWithFK(): Löst Fremdschlüssel automatisch mit Caching auf.
Core\Model (High-Level)
Objektorientierte Abstraktion für sauberen Code:
class Product extends Model {
protected static $table = "Products";
}
// Nutzung
$all = Product::all();
$one = Product::find(1);
🛠️ 4. CLI Werkzeuge (make.php)
Beschleunige die Entwicklung durch automatische Code-Generierung:
-
Modul generieren:
php make.php module News -l "📰 News" -a(Erstellt Controller, View, Route und Nav-Eintrag) -
Model generieren:
php make.php model Orders ID,USER_ID,TOTAL(Erstellt Model-Klasse mit Spalten-Dokumentation)
🧱 5. UI & Layout System
Das Framework nutzt ein modulares Block-System:
- Blöcke setzen: In der
index.phpoder im Controller via$layout->setBlock('name', 'inhalt'). - Blöcke ausgeben: Im Layout-Template via
<?= $this->getBlock('name') ?>.
🛡️ 6. Best Practices für Entwickler
- SQL-Injection: Nutze ausschließlich die Model-Methoden oder
databaseMethods.php. - XSS-Schutz: Benutzereingaben in Views immer mit
htmlspecialchars()maskieren. - Logik-Trennung: Schwere Logik gehört in Models oder Services, Controller bleiben schlank.
- Debugging: Prüfe die
logs/error.logfür detaillierte Stacktraces bei Fehlern.
Für eine detaillierte Dokumentation starte das Framework und rufe den Service docs auf.
Languages
PHP
99.9%