Erste Schritte mit Controller und Routes

Eigene Controller und Routen anlegen

In diesem Tutorial lernst du, wie du im phpFK – PHP Framework (oder jedem vergleichbaren
MVC-System) eigene Controller und Routen anlegst. Das Ziel ist, ganz pragmatisch eine neue Seite
in deiner Anwendung zu definieren und sie anschließend im Browser aufzurufen.
So kannst du deine erste „Hello World“-Seite oder sogar komplexe Logik bequem einbinden.

Was sind Controller & Routes?

Ein Controller ist eine PHP-Klasse, die meist eine spezifische Aufgabe übernimmt –
etwa das Darstellen einer Startseite, das Verarbeiten eines Formulars oder das Ausliefern einer
JSON-API. Eine Route legt fest, welche URL zu welchem Controller (und welcher Methode)
führt. Damit weiß dein Framework, was es tun soll, wenn ein bestimmter Pfad im Browser aufgerufen wird.

Grundlegender Aufbau im phpFK – PHP Framework

Standardmäßig findest du in app/routes.php den Bereich, wo die Routen definiert sind.
Dort wird das Routing-System initialisiert und du kannst neue Pfade registrieren.
Controller hingegen werden üblicherweise im Ordner app/controllers/ abgelegt.

Beispiel-Verzeichnisstruktur

app/
 ├── controllers/
 │    └── HomeController.php
 ├── routes.php
 ...
public/
 ├── index.php
 ...

In diesem Beispiel ist der HomeController bereits angelegt, und routes.php
enthält die Routen-Konfiguration.

Eigener Controller: Beispiel „HelloController“

Erstellen wir nun einen eigenen Controller namens „HelloController“,
der eine einfache Methode

greet()

zur Verfügung stellt.
Diese Methode soll einen Willkommens-Text ausgeben.

app/controllers/HelloController.php

// app/controllers/HelloController.php

namespace App\Controllers; // Angepasster Namespace je nach Projektstruktur
use Core\Controller;      // phpFK-Basis-Controller erben

class HelloController extends Controller
{
    public function greet()
    {
        // Hier könnte natürlich auch komplexere Logik stehen
        echo "Hallo aus dem HelloController!";
    }
}

Wir legen also eine simple Methode

greet()

an, die einen Text ausgibt.
Später können wir diesen Text durch Template-Aufrufe oder eine komplexe Logik ersetzen.

Route definieren

Damit dein Framework weiß, wann es

HelloController::greet()

aufrufen soll,
registrieren wir in app/routes.php eine neue Route.

app/routes.php (Auszug)

// app/routes.php

$router->addRoute('/', function() {
    echo "Willkommen auf der Startseite!";
});

// Neue Route: '/hello'
$router->addRoute('/hello', [\App\Controllers\HelloController::class, 'greet']);

Hier haben wir der Route

/hello

mitgeteilt, dass sie den HelloController
verwenden und dort die Methode

greet

ausführen soll.
Wenn du später deine URL aufrufst (z. B. http://localhost/phpfk/public/hello),
wird der Inhalt aus der Methode

greet()

angezeigt.

Aufruf im Browser

Im lokalen Entwicklungsumfeld (z. B. mit XAMPP) würde die URL so aussehen:

http://localhost/phpfk/public/hello

Wenn du dein Framework in einen Unterordner oder direkt ins Root deiner Domain
(auf einem Webserver) gelegt hast, passe die URL entsprechend an.
Erscheint „Hallo aus dem HelloController!“, weißt du, dass deine Route und dein Controller einwandfrei funktionieren.

Verwendung von Views

Meist will man nicht nur einfachen Text ausgeben, sondern ein HTML-Template oder
eine sogenannte View einbinden. In phpFK gibt es dazu
Core\View.
Nach dem OOP-Prinzip könntest du stattdessen im Controller einfach:

public function greet()
{
    $data = ['username' => 'Max Mustermann'];
    // "hello" könnte eine Datei app/views/hello.php sein
    return \Core\View::render('hello', $data);
}

Damit renderst du eine separate Datei, in der dein HTML-Code liegt und wo du die Variable
$username nutzen kannst. So baust du im Handumdrehen eine saubere Trennung
von Logik (Controller) und Präsentation (View).

Tipps & Tricks

  • Naming-Konventionen: Achte darauf, dass du die Controller-Klassen
    konsistent benennst, z. B. HelloController, UserController etc.
    und die Methoden sprechend (z. B. index(), show(), store())
    bezeichnet sind.
  • Routen benennen: Nutze kurze, selbsterklärende Pfade wie

    /hello

    oder

    /profile/edit

    .

  • Mehr Logik in die Models auslagern: Wenn du datenbanklastige Aufgaben hast,
    halte deinen Controller schlank und nutze ein Model (z. B. User.php)
    für die eigentlichen DB-Operationen.
  • Middlewares nutzen: Falls dein Framework Middlewares unterstützt,
    kannst du bestimmte Routen schützen (z. B. nur für eingeloggte Nutzer).
    Das hält deinen Controller-Code sauber.

Fazit

Das Anlegen eigener Controller und Routen ist ein fundamentaler Schritt, um Seiten in phpFK
oder generell jedem MVC-Framework zu erstellen. Du brauchst lediglich eine neue PHP-Klasse
(Controller) und einen passenden Eintrag in routes.php.
So behältst du eine klare Struktur und kannst leicht weitere Controller hinzufügen,
wenn dein Projekt wächst.
Mit diesem Grundlagenwissen hast du die Basis geschaffen, um beliebig viele Seiten,
Funktionen oder ganze Module zu entwickeln und sie alle übersichtlich zu verwalten.