Jak pisać mikrostrony internetowe

Wyobraź sobie, że musisz szybko stworzyć małą stronę internetową na nadchodzące wydarzenie Twojej firmy. Powinna być prosta, szybka i bez zbędnych komplikacji. Można by pomyśleć, że tak mały projekt nie wymaga solidnego frameworka. Ale co, jeśli użycie frameworka Nette może znacznie uprościć i przyspieszyć ten proces?

Nawet tworząc proste strony internetowe, nie chcesz rezygnować z wygody. Nie chcesz wymyślać koła na nowo. Możesz być leniwy i rozpieszczać samego siebie. Nette Framework może być również doskonale wykorzystywany jako mikro framework.

Jak może wyglądać taka mikrostrona? Na przykład, cały kod strony może być umieszczony w pojedynczym pliku index.php w folderze publicznym:

<?php

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

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

// utworzenie kontenera DI na podstawie konfiguracji w config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// skonfigurować routing
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// trasa dla adresu URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// wykrywanie języka przeglądarki i przekierowanie na URL /en lub /de itp.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// trasa dla adresu URL https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// wyświetla odpowiedni szablon, na przykład ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// uruchom aplikację!
$container->getByType(Nette\Application\Application::class)->run();

Cała reszta będzie szablonami przechowywanymi w folderze nadrzędnym /templates.

Kod PHP w index.php najpierw konfiguruje środowisko, następnie definiuje trasy, a na końcu uruchamia aplikację. Zaletą jest to, że drugim parametrem funkcji addRoute() może być wywołanie, które jest wykonywane po otwarciu odpowiedniej strony.

Dlaczego warto używać Nette dla mikrostron?

  • Programiści, którzy kiedykolwiek wypróbowali Tracy, nie wyobrażają sobie dziś kodowania bez niego.
  • Ale przede wszystkim będziesz korzystać z systemu szablonów Latte, ponieważ z zaledwie 2 stron będziesz chciał oddzielić układ i zawartość.
  • I zdecydowanie chcesz polegać na automatycznym uciekaniu, aby zapobiec lukom w zabezpieczeniach XSS.
  • Nette zapewnia również, że w przypadku błędu komunikaty o błędach PHP nigdy nie będą wyświetlane, ale zamiast tego pojawi się przyjazna dla użytkownika strona.
  • Jeśli chcesz uzyskać informacje zwrotne od użytkowników, na przykład w formie formularza kontaktowego, możesz również dodać formularzebazę danych.
  • Możesz także łatwo wysyłać wypełnione formularze pocztą e-mail.
  • Czasami przydatne może okazać się buforowanie, na przykład podczas pobierania i wyświetlania kanałów.

W dzisiejszych czasach, gdzie szybkość i wydajność są kluczowe, ważne jest, aby mieć narzędzia, które pozwalają osiągnąć wyniki bez zbędnych opóźnień. Framework Nette oferuje właśnie to – szybki rozwój, bezpieczeństwo i szeroką gamę narzędzi, takich jak Tracy i Latte, które upraszczają proces. Wystarczy zainstalować kilka pakietów Nette, a zbudowanie takiej mikrostrony staje się dziecinnie proste. I wiesz, że nie ma żadnych ukrytych luk w zabezpieczeniach.