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.