Wie man Mikro-Websites schreibt
Stellen Sie sich vor, Sie müssen schnell eine kleine Website für die bevorstehende Veranstaltung Ihrer Firma erstellen. Sie soll einfach, schnell und ohne unnötige Komplikationen sein. Vielleicht denken Sie, dass Sie für ein so kleines Projekt kein robustes Framework benötigen. Aber was, wenn die Verwendung des Nette Frameworks diesen Prozess grundlegend vereinfachen und beschleunigen kann?
Denn auch bei der Erstellung einfacher Websites möchten Sie nicht auf Komfort verzichten. Sie möchten nicht das neu erfinden, was bereits einmal gelöst wurde. Seien Sie ruhig faul und lassen Sie sich verwöhnen. Das Nette Framework kann auch hervorragend als Micro Framework genutzt werden.
Wie kann eine solche Microsite aussehen? Zum Beispiel so, dass der gesamte Code der Website in einer einzigen Datei
index.php
im öffentlichen Ordner platziert wird:
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
// DI-Container basierend auf der Konfiguration in config.neon erstellen
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();
// Routing einstellen
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);
// Route für URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
// Browsersprache erkennen und auf URL /en oder /de usw. umleiten
$supportedLangs = ['en', 'de', 'cs'];
$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
$presenter->redirectUrl("/$lang");
});
// Route für URL https://example.com/cs oder https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
// entsprechende Vorlage anzeigen, z.B. ../templates/en.latte
$template = $presenter->createTemplate()
->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
return $template;
});
// Anwendung starten!
$container->getByType(Nette\Application\Application::class)->run();
Alles andere sind Templates, die im übergeordneten Ordner /templates
gespeichert sind.
Der PHP-Code in index.php
bereitet zuerst die Umgebung vor,
definiert dann die Routen und
startet schließlich die Anwendung. Der Vorteil ist, dass der zweite Parameter der Funktion addRoute()
ein Callable
sein kann, das ausgeführt wird, wenn die entsprechende Seite geöffnet wird.
Warum Nette für Microsites verwenden?
- Programmierer, die jemals Tracy ausprobiert haben, können sich heute nicht mehr vorstellen, ohne sie etwas zu programmieren.
- Vor allem aber werden Sie das Templating-System Latte nutzen, denn schon ab 2 Seiten werden Sie Layout und Inhalt trennen wollen.
- Und Sie möchten sich auf jeden Fall auf das automatische Escaping verlassen, damit keine XSS-Schwachstelle entsteht.
- Nette stellt auch sicher, dass bei einem Fehler niemals PHP-Fehlermeldungen für Programmierer angezeigt werden, sondern eine für den Benutzer verständliche Seite.
- Wenn Sie Feedback von Benutzern erhalten möchten, zum Beispiel in Form eines Kontaktformulars, fügen Sie noch Formulare und eine Datenbank hinzu.
- Ausgefüllte Formulare können Sie sich auch einfach per E-Mail zusenden lassen.
- Manchmal kann Ihnen Caching nützlich sein, zum Beispiel wenn Sie Feeds herunterladen und anzeigen.
In der heutigen Zeit, in der Geschwindigkeit und Effizienz entscheidend sind, ist es wichtig, Werkzeuge zu haben, die es Ihnen ermöglichen, Ergebnisse ohne unnötige Verzögerung zu erzielen. Das Nette Framework bietet Ihnen genau das – schnelle Entwicklung, Sicherheit und eine breite Palette von Werkzeugen wie Tracy und Latte, die den Prozess vereinfachen. Installieren Sie einfach ein paar Nette-Pakete und der Aufbau einer solchen Microsite ist plötzlich ein Kinderspiel. Und Sie wissen, dass sich nirgendwo eine Sicherheitslücke verbirgt.