Nette Documentation Preview

syntax
Comment rédiger 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 pourriez penser qu'un si petit projet ne nécessite pas un framework robuste. Et si l'utilisation du framework Nette pouvait considérablement simplifier et accélérer 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 la roue. N'hésitez pas à être paresseux et à vous faire plaisir. Le cadre Nette peut également être utilisé de manière optimale en tant que micro-cadre.

À quoi pourrait ressembler un tel microsite ? Par exemple, l'ensemble du code du site web peut être placé dans un seul fichier `index.php` dans le dossier public :

```php
<?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();

// mettre 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é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 nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// affiche le modèle approprié, par exemple ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// Exécutez l'application !
$container->getByType(Nette\Application\Application::class)->run();
```

Tout le reste sera des modèles stockés dans le dossier parent `/templates`.

Le code PHP dans `index.php` configure d'abord l'[environnement |bootstrap:], puis définit les [itinéraires |application:routing#dynamic-routing-with-callbacks] et enfin exécute l'application. L'avantage est que le deuxième paramètre de la fonction `addRoute()` peut être un appel qui est exécuté lorsque la page correspondante est ouverte.


Pourquoi utiliser Nette pour les microsites ? .[#toc-why-use-nette-for-microsites]
----------------------------------------------------------------------------------

- Les développeurs qui ont déjà essayé [Tracy |tracy:] ne peuvent imaginer coder sans lui aujourd'hui.
- Mais surtout, vous utiliserez le système de templates [Latte |latte:], parce qu'à partir de 2 pages seulement, vous voudrez séparer la [mise en page et le contenu |latte:template-inheritance].
- Et vous voudrez certainement compter sur l'[échappement automatique |latte:safety-first] pour éviter les vulnérabilités XSS.
- Nette garantit également qu'en cas d'erreur, les messages d'erreur PHP ne seront jamais affichés, mais qu'une page conviviale le sera.
- Si vous souhaitez obtenir un retour d'information de la part des utilisateurs, par exemple sous la forme d'un formulaire de contact, vous pouvez également ajouter des [formulaires |forms:] et une [base de données |database:].
- Vous pouvez également faire en sorte que les formulaires remplis soient [envoyés par courrier électronique |mail:].
- La [mise en cache |caching:] peut parfois s'avérer utile, par exemple lors du téléchargement et de l'affichage de flux.

À notre époque, où la rapidité et l'efficacité sont essentielles, il est important de disposer d'outils qui vous permettent d'obtenir des résultats sans retards inutiles. C'est précisément ce qu'offre le cadre Nette : 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 pour que la création d'un microsite devienne un jeu d'enfant. Et vous savez qu'il n'y a pas de failles de sécurité cachées.

Comment rédiger 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 pourriez penser qu'un si petit projet ne nécessite pas un framework robuste. Et si l'utilisation du framework Nette pouvait considérablement simplifier et accélérer 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 la roue. N'hésitez pas à être paresseux et à vous faire plaisir. Le cadre Nette peut également être utilisé de manière optimale en tant que micro-cadre.

À quoi pourrait ressembler un tel microsite ? Par exemple, l'ensemble du code du site web peut être placé dans un seul fichier index.php dans le dossier public :

&lt;?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();

// mettre 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é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 nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// affiche le modèle approprié, par exemple ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

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

Tout le reste sera des modèles stockés dans le dossier parent /templates.

Le code PHP dans index.php configure d'abord l'environnement, puis définit les itinéraires et enfin exécute l'application. L'avantage est que le deuxième paramètre de la fonction addRoute() peut être un appel qui est exécuté lorsque la page correspondante est ouverte.

Pourquoi utiliser Nette pour les microsites ?

  • Les développeurs qui ont déjà essayé Tracy ne peuvent imaginer coder sans lui aujourd'hui.
  • Mais surtout, vous utiliserez le système de templates Latte, parce qu'à partir de 2 pages seulement, vous voudrez séparer la mise en page et le contenu.
  • Et vous voudrez certainement compter sur l'échappement automatique pour éviter les vulnérabilités XSS.
  • Nette garantit également qu'en cas d'erreur, les messages d'erreur PHP ne seront jamais affichés, mais qu'une page conviviale le sera.
  • Si vous souhaitez obtenir un retour d'information de la part des utilisateurs, par exemple sous la forme d'un formulaire de contact, vous pouvez également ajouter des formulaires et une base de données.
  • Vous pouvez également faire en sorte que les formulaires remplis soient envoyés par courrier électronique.
  • La mise en cache peut parfois s'avérer utile, par exemple lors du téléchargement et de l'affichage de flux.

À notre époque, où la rapidité et l'efficacité sont essentielles, il est important de disposer d'outils qui vous permettent d'obtenir des résultats sans retards inutiles. C'est précisément ce qu'offre le cadre Nette : 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 pour que la création d'un microsite devienne un jeu d'enfant. Et vous savez qu'il n'y a pas de failles de sécurité cachées.