Best Practices

30 Minuten MITTELSTUFE

Lernen Sie, wie Sie mit GEMVC sauberen, typsicheren, wartbaren und sicheren Code schreiben.

What You'll Learn

Typsicherheit

PHPStan Level 9 und strikte Typisierung

Architektur

Das verpflichtende 4-Schichten-Modell

Codequalitaet

Sicherheit, Datenbankpraxis und Team-Standards

Video Coming Soon...

Warum Best Practices?

Mit konsequenten Best Practices bleiben Ihre APIs stabil, sicher und langfristig wartbar. GEMVC unterstuetzt PHPStan Level 9 und bietet damit ein sehr hohes Niveau statischer Analyse.

  • Typsicherheit: Fehler frueh erkennen statt erst im Betrieb.
  • Sicherheit: Eingaben validieren und Endpunkte absichern.
  • Wartbarkeit: Klare Schichten, klare Namen, klare Verantwortlichkeiten.
  • Performance: Sinnvolle Indizes und effiziente Queries.

1) Typsicherheit & PHPStan

βœ… Strikte Typen aktivieren

Gute Praxis
<?php
declare(strict_types=1);

class Product extends ApiService
{
    public function create(): JsonResponse
    {
        // typsicher
    }
}

βœ… PHPStan regelmaessig ausfuehren

Terminal
vendor/bin/phpstan analyse
composer phpstan

2) Architektur befolgen

Nutzen Sie immer den Ablauf: API β†’ Controller β†’ Model β†’ Table.

Schichten korrekt
<?php
class Product extends ApiService {}
class ProductController extends Controller {}
class ProductModel extends Model {}
class ProductTable extends Table {}

3) Sicherheit

βœ… Schema-Validierung zuerst

Empfohlen
<?php
if (!$this->request->definePostSchema([
  'name' => 'string',
  'price' => 'float',
])) {
  return $this->request->returnResponse();
}

βœ… Auth fuer geschuetzte Endpunkte

Empfohlen
<?php
if (!$this->request->auth(['admin'])) {
  return $this->request->returnResponse();
}

4) Datenbank & CLI

Schema und Indizes
<?php
public function defineSchema(): array {
  return [
    Schema::index('email'),
    Schema::unique('email'),
  ];
}
Terminal
gemvc create:crud Product
gemvc db:migrate ProductTable

⭐ Best Practices gemeistert!

Sehr gut! Mit diesen Regeln schreiben Sie robuste, sichere und wartbare GEMVC-Anwendungen.