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.