Kako napisati mikrostrani

Predstavljajte si, da morate na hitro ustvariti majhno spletno stran za prihajajoči dogodek vašega podjetja. Biti mora preprosta, hitra in brez nepotrebnih zapletov. Morda mislite, da tako majhen projekt ne zahteva robustnega ogrodja. Kaj pa, če lahko z uporabo ogrodja Nette ta postopek bistveno poenostavite in pospešite?

Tudi pri ustvarjanju preprostih spletnih mest se ne želite odpovedati udobju. Ne želite na novo izumljati kolesa. Privoščite si, da ste leni in se razvajate. Okvir Nette je mogoče odlično uporabiti tudi kot mikrookvir.

Kako je lahko videti takšna mikrostrani? Celotno kodo spletnega mesta lahko na primer postavite v eno samo datoteko index.php v javni mapi:

<?php

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

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

// ustvarite vsebnik DI na podlagi konfiguracije v config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

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

// pot za URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// zaznajo jezik brskalnika in preusmerijo na URL /en ali /de itd.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// pot za URL https://example.com/cs ali https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// prikaže ustrezno predlogo, na primer ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// zaženite aplikacijo!
$container->getByType(Nette\Application\Application::class)->run();

Vse drugo bodo predloge, shranjene v nadrejeni mapi /templates.

Koda PHP v mapi index.php najprej vzpostavi okolje, nato definira poti in nazadnje zažene aplikacijo. Prednost je, da je lahko drugi parameter funkcije addRoute() klicni ukaz, ki se izvede, ko se odpre ustrezna stran.

Zakaj uporabljati Nette za mikrostrani?

  • Razvijalci, ki so kdaj preizkusili Tracy, si danes ne morejo predstavljati kodiranja brez njega.
  • Predvsem pa boste uporabili sistem za oblikovanje predlog Latte, saj boste iz samo dveh strani želeli ločiti postavitev in vsebino.
  • In vsekakor se boste želeli zanesti na samodejno pobeganje, da bi preprečili ranljivosti XSS.
  • Nette zagotavlja tudi, da se v primeru napake ne bodo nikoli prikazala sporočila o napaki PHP, temveč bo namesto tega prikazana uporabniku prijazna stran.
  • Če želite od uporabnikov pridobiti povratne informacije, na primer v obliki kontaktnega obrazca, lahko dodate tudi obrazce in zbirko podatkov.
  • Izpolnjene obrazce lahko preprosto pošljete tudi po elektronski pošti.
  • Včasih se vam lahko zdi koristno predpomnjenje, na primer pri prenašanju in prikazovanju virov.

V današnjem času, ko sta hitrost in učinkovitost ključnega pomena, je pomembno imeti orodja, ki vam omogočajo doseganje rezultatov brez nepotrebnih zamud. Okvir Nette ponuja prav to – hiter razvoj, varnost in široko paleto orodij, kot sta Tracy in Latte, ki poenostavljajo postopek. Samo namestite nekaj paketov Nette in gradnja takšne mikrostrani bo postala enostavna. Poleg tega veste, da ni nobenih skritih varnostnih pomanjkljivosti.