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ć formularze i bazę 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.