Come scrivere micrositi

Immaginate di dover creare rapidamente un piccolo sito web per un evento imminente della vostra azienda. Dovrebbe essere semplice, veloce e senza inutili complicazioni. Potreste pensare che un progetto così piccolo non richieda un framework robusto. Ma se l'utilizzo del framework Nette semplificasse e velocizzasse notevolmente questo processo?

Anche quando si creano siti web semplici, non si vuole rinunciare al comfort. Non volete reinventare la ruota. Sentitevi liberi di essere pigri e di coccolarvi. Il framework Nette può essere utilizzato in modo eccellente anche come micro framework.

Come potrebbe essere un microsito di questo tipo? Ad esempio, l'intero codice del sito web può essere inserito in un singolo file index.php nella cartella pubblica:

<?php

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

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

// creare un contenitore DI basato sulla configurazione in config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// impostare l'instradamento
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// rotta per l'URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// rilevare la lingua del browser e reindirizzare all'URL /en o /de ecc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// rotta per l'URL https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// visualizza il modello appropriato, ad esempio ../templates/it.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

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

Tutto il resto saranno modelli memorizzati nella cartella madre /templates.

Il codice PHP in index.php imposta prima l'ambiente, poi definisce le rotte e infine esegue l'applicazione. Il vantaggio è che il secondo parametro della funzione addRoute() può essere un callable che viene eseguito quando viene aperta la pagina corrispondente.

Perché usare Nette per i micrositi?

  • Gli sviluppatori che hanno provato Tracy non possono immaginare di codificare senza di esso oggi.
  • Ma soprattutto, utilizzerete il sistema di template Latte, perché da sole 2 pagine, vorrete separare layout e contenuti.
  • E sicuramente vorrete affidarvi all'escape automatico per prevenire le vulnerabilità XSS.
  • Nette garantisce inoltre che, in caso di errore, non vengano mai visualizzati messaggi di errore PHP, ma una pagina di facile consultazione.
  • Se si desidera ottenere un feedback dagli utenti, ad esempio sotto forma di modulo di contatto, è possibile aggiungere moduli e database.
  • È anche possibile inviare facilmente via e-mail i moduli compilati.
  • A volte può essere utile la cache, ad esempio quando si scaricano e si visualizzano i feed.

Nell'era odierna, in cui velocità ed efficienza sono fondamentali, è importante disporre di strumenti che consentano di ottenere risultati senza inutili ritardi. Il framework Nette offre proprio questo: sviluppo veloce, sicurezza e un'ampia gamma di strumenti come Tracy e Latte che semplificano il processo. Basta installare alcuni pacchetti Nette e la costruzione di un microsito di questo tipo diventa un gioco da ragazzi. E si sa che non ci sono falle di sicurezza nascoste.