Comment écrire des micro-sites

Imaginez que vous ayez besoin de créer rapidement un petit site web pour un événement à venir de votre entreprise. Il doit être simple, rapide et sans complications inutiles. Vous pourriez penser que pour un si petit projet, vous n'avez pas besoin d'un framework robuste. Mais que se passerait-il si l'utilisation du framework Nette pouvait simplifier et accélérer considérablement ce processus ?

Même lors de la création de sites web simples, vous ne voulez pas renoncer au confort. Vous ne voulez pas réinventer ce qui a déjà été résolu une fois. Soyez paresseux et laissez-vous choyer. Nette Framework peut également être parfaitement utilisé comme micro framework.

À quoi peut ressembler un tel microsite ? Par exemple, en plaçant tout le code du site web dans un seul fichier index.php dans le dossier public :

<?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');

// créer un conteneur DI basé sur la configuration dans config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// configurer le routage
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// route pour l'URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// détecter la langue du navigateur et rediriger vers l'URL /en ou /de etc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// route pour l'URL https://example.com/cs ou https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// afficher le template correspondant, par exemple ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// lancer l'application !
$container->getByType(Nette\Application\Application::class)->run();

Tout le reste sera constitué de templates stockés dans le dossier parent /templates.

Le code PHP dans index.php prépare d'abord l'environnement, puis définit les routes et enfin lance l'application. L'avantage est que le deuxième paramètre de la fonction addRoute() peut être un callable, qui sera exécuté après l'ouverture de la page correspondante.

Pourquoi utiliser Nette pour un microsite ?

  • Les programmeurs qui ont déjà essayé Tracy ne peuvent plus imaginer programmer quoi que ce soit sans elle aujourd'hui.
  • Mais surtout, vous utiliserez le système de templates Latte, car dès 2 pages, vous voudrez avoir une mise en page et un contenu séparés.
  • Et vous voulez absolument compter sur l'échappement automatique pour éviter la vulnérabilité XSS.
  • Nette garantit également qu'en cas d'erreur, les messages d'erreur PHP destinés aux programmeurs ne s'afficheront jamais, mais une page compréhensible par l'utilisateur.
  • Si vous souhaitez obtenir des retours d'utilisateurs, par exemple sous la forme d'un formulaire de contact, vous ajouterez également des formulaires et une base de données.
  • Vous pouvez également faire envoyer par e-mail facilement les formulaires remplis.
  • Parfois, la mise en cache peut vous être utile, par exemple si vous téléchargez et affichez des flux.

À notre époque, où la vitesse et l'efficacité sont essentielles, il est important de disposer d'outils qui vous permettent d'obtenir des résultats sans délai inutile. Le framework Nette vous offre exactement cela – un développement rapide, la sécurité et une large gamme d'outils, tels que Tracy et Latte, qui simplifient le processus. Il suffit d'installer quelques paquets Nette et construire un tel microsite devient soudain un jeu d'enfant. Et vous savez qu'aucune faille de sécurité ne se cache nulle part.