Jak tworzyć mikro-strony

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

Przecież nawet przy tworzeniu prostych stron internetowych nie chcesz rezygnować z wygody. Nie chcesz wymyślać tego, co już zostało raz rozwiązane. Bądź spokojnie leniwy i pozwól się rozpieszczać. Nette Framework można świetnie wykorzystać również jako micro framework.

Jak taka mikrostroń może wyglądać? Na przykład tak, że cały kod strony umieścimy w jednym 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');

// utwórz kontener DI na podstawie konfiguracji w config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

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

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

// trasa dla URL https://example.com/cs lub https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// wyświetlamy 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();

Wszystko pozostałe to szablony zapisane w nadrzędnym folderze /templates.

Kod PHP w index.php najpierw przygotowuje środowisko, następnie definiuje trasy i na końcu uruchamia aplikację. Zaletą jest to, że drugi parametr funkcji addRoute() może być callable, który zostanie wykonany po otwarciu odpowiedniej strony.

Dlaczego używać Nette do mikrostroń?

  • Programiści, którzy kiedykolwiek wypróbowali Tracy, dziś nie wyobrażają sobie, że mogliby coś programować bez niej.
  • Przede wszystkim jednak wykorzystasz system szablonów Latte, ponieważ już od 2 stron będziesz chciał mieć oddzielony layout i treść.
  • I zdecydowanie chcesz polegać na automatycznym escapowaniu, aby nie powstała podatność XSS
  • Nette również zapewni, że w przypadku błędu nigdy nie pojawią się programistyczne komunikaty błędów PHP, ale zrozumiała dla użytkownika strona.
  • Jeśli chcesz zbierać informacje zwrotne od użytkowników, na przykład w postaci formularza kontaktowego, to jeszcze dodasz formularzebazę danych.
  • Wypełnione formularze możesz również łatwo wysyłać e-mailem.
  • Czasami może przydać się keszowanie, na przykład jeśli pobierasz i wyświetlasz feedy.

W dzisiejszych czasach, gdy szybkość i efektywność są kluczowe, ważne jest posiadanie narzędzi, które pozwolą Ci osiągnąć wyniki bez zbędnego opóźnienia. 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 mikrostroń staje się nagle dziecinnie proste. I wiesz, że nigdzie nie kryje się żadna dziura bezpieczeństwa.