Comment écrire des microsites
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 vous dites peut-être qu'un framework robuste n'est pas nécessaire pour un si petit projet. Mais si utiliser Nette Framework pouvait justement simplifier et accélérer ce travail ?
Même en créant des sites simples, vous ne voulez pas renoncer au confort. Vous ne voulez pas réinventer ce qui est déjà résolu. Soyez paresseux et laissez-vous choyer. Nette Framework se prête aussi excellemment à un usage de micro-framework.
À quoi peut ressembler un tel microsite ? Par exemple, tout le code du site peut tenir dans un unique fichier
index.php situé dans le répertoire public :
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
// crée le conteneur DI d'après la configuration dans config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();
// met en place 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étecte la langue du navigateur et redirige vers l'URL /en ou /de, etc.
$supportedLangs = ['en', 'de', 'cs'];
$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
return $presenter->redirectUrl("/$lang");
});
// route pour l'URL https://example.com/cs ou https://example.com/en
$router->addRoute('<lang cs|en|de>', function ($presenter, string $lang) {
// affiche le template correspondant, par exemple ../templates/en.latte
$template = $presenter->createTemplate()
->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
return $template;
});
// lance l'application !
$container->getByType(Nette\Application\Application::class)->run();
Tout le reste sera constitué de templates enregistrés dans le répertoire parent /templates.
Le code PHP de index.php met d'abord en place l'environnement,
puis définit les routes et lance
enfin l'application. L'avantage est que le deuxième paramètre de la fonction addRoute() peut être un callable, qui
s'exécute lorsque la page correspondante est ouverte.
Pourquoi utiliser Nette pour des microsites ?
- Les programmeurs qui ont essayé Tracy ont aujourd'hui du mal à imaginer programmer sans elle.
- Vous profiterez surtout du système de templates Latte, car même avec deux pages seulement, vous voudrez séparer le layout et le contenu.
- Et vous voudrez certainement compter sur l'échappement automatique pour éviter les failles XSS.
- Nette veille aussi à ce qu'en cas d'erreur, les messages d'erreur bruts de PHP ne s'affichent jamais ; c'est une page conviviale qui est présentée à la place.
- Si vous voulez recueillir les retours des utilisateurs, par exemple via un formulaire de contact, vous pouvez facilement ajouter la prise en charge des formulaires et de la base de données.
- Vous pouvez aussi facilement faire envoyer par e-mail les formulaires remplis.
- Parfois, le cache peut être utile, par exemple lors du téléchargement et de l'affichage de flux.
Dans le monde d'aujourd'hui, où la rapidité et l'efficacité sont cruciales, il est essentiel de disposer d'outils qui permettent d'obtenir des résultats sans délais inutiles. Nette Framework offre exactement cela : un développement rapide, la sécurité et tout un éventail d'outils comme Tracy et Latte qui fluidifient le travail. Il suffit d'installer quelques paquets Nette et construire un tel microsite devient incroyablement facile. Et vous pouvez être sûr qu'aucune faille de sécurité ne se cache dedans.