Como criar micro-sites

Imagine que você precisa criar rapidamente um pequeno site para o próximo evento da sua empresa. Deve ser simples, rápido e sem complicações desnecessárias. Você pode pensar que para um projeto tão pequeno não precisa de um framework robusto. Mas e se o uso do framework Nette puder simplificar e acelerar fundamentalmente esse processo?

Afinal, mesmo ao criar sites simples, você não quer abrir mão do conforto. Você não quer reinventar o que já foi resolvido uma vez. Sinta-se à vontade para ser preguiçoso e deixe-se mimar. O Nette Framework pode ser perfeitamente usado também como um micro framework.

Como pode ser um microsite assim? Por exemplo, colocando todo o código do site em um único arquivo index.php na pasta pública:

<?php

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

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

// cria o contêiner de DI com base na configuração em config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// definimos o roteamento
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// rota para a URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// detectamos o idioma do navegador e redirecionamos para a URL /en ou /de etc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// rota para a URL https://example.com/cs ou https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// exibimos o template correspondente, por exemplo ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// execute a aplicação!
$container->getByType(Nette\Application\Application::class)->run();

Todo o resto serão templates armazenados na pasta pai /templates.

O código PHP em index.php primeiro prepara o ambiente, depois define as rotas e finalmente executa a aplicação. A vantagem é que o segundo parâmetro da função addRoute() pode ser um callable, que será executado após a abertura da página correspondente.

Por que usar Nette para microsites?

  • Programadores que já experimentaram o Tracy hoje não conseguem imaginar programar algo sem ele.
  • Acima de tudo, você usará o sistema de templates Latte, porque a partir de 2 páginas você vai querer ter o layout e conteúdo separados.
  • E você definitivamente quer confiar no escaping automático para evitar a vulnerabilidade XSS.
  • O Nette também garante que, em caso de erro, nunca sejam exibidas mensagens de erro de programação PHP, mas sim uma página compreensível para o usuário.
  • Se você quiser obter feedback dos usuários, por exemplo, na forma de um formulário de contato, você ainda adicionará formulários e banco de dados.
  • Você também pode facilmente enviar por e-mail os formulários preenchidos.
  • Às vezes, pode ser útil usar cache, por exemplo, se você baixa e exibe feeds.

Nos dias de hoje, onde a velocidade e a eficiência são cruciais, é importante ter ferramentas que permitam alcançar resultados sem atrasos desnecessários. O framework Nette oferece exatamente isso – desenvolvimento rápido, segurança e uma ampla gama de ferramentas, como Tracy e Latte, que simplificam o processo. Basta instalar alguns pacotes Nette e construir tal microsite torna-se de repente uma brincadeira de criança. E você sabe que não há nenhuma falha de segurança escondida em lugar nenhum.