Cum să scrieți microsite-uri

Imaginați-vă că trebuie să creați rapid un mic site web pentru un eveniment viitor al companiei dumneavoastră. Acesta trebuie să fie simplu, rapid și fără complicații inutile. S-ar putea să vă gândiți că un proiect atât de mic nu necesită un framework robust. Dar dacă utilizarea cadrului Nette ar putea simplifica și accelera semnificativ acest proces?

Chiar și atunci când creați site-uri web simple, nu doriți să renunțați la confort. Nu doriți să reinventați roata. Simțiți-vă liber să fiți leneș și să vă răsfățați. Cadrul Nette Framework poate fi folosit excelent și ca microcadru.

Cum ar putea arăta un astfel de microsite? De exemplu, întregul cod al site-ului poate fi plasat într-un singur fișier index.php în folderul public:

<?php

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

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

// creați un container DI pe baza configurației din config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// configurați rutarea
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// ruta pentru URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// detectează limba browserului și redirecționează la URL /en sau /de etc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// ruta pentru URL https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// afișează șablonul corespunzător, de exemplu ../template/ro.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// rulați aplicația!
$container->getByType(Nette\Application\Application::class)->run();

Restul vor fi șabloane stocate în dosarul părinte /templates.

Codul PHP din index.php stabilește mai întâi mediul, apoi definește rutele și, în final, rulează aplicația. Avantajul este că al doilea parametru al funcției addRoute() poate fi un callable care este executat atunci când se deschide pagina corespunzătoare.

De ce să folosiți Nette pentru microsite-uri?

  • Dezvoltatorii care au încercat vreodată Tracy nu-și pot imagina astăzi codarea fără el.
  • Dar, mai presus de toate, veți utiliza sistemul de template-uri Latte, deoarece de la doar 2 pagini, veți dori să separați aspectul și conținutul.
  • Și, cu siguranță, veți dori să vă bazați pe escape-ul automat pentru a preveni vulnerabilitățile XSS.
  • De asemenea, Latte se asigură că, în caz de eroare, nu vor fi afișate niciodată mesaje de eroare PHP, ci în schimb, o pagină ușor de utilizat.
  • Dacă doriți să obțineți feedback de la utilizatori, de exemplu sub forma unui formular de contact, puteți adăuga, de asemenea, formulare și bază de date.
  • De asemenea, puteți face cu ușurință ca formularele completate să fie trimise prin e-mail.
  • Uneori s-ar putea să vă fie utilă memoria cache, de exemplu, atunci când descărcați și afișați fluxuri.

În epoca actuală, în care viteza și eficiența sunt esențiale, este important să dispuneți de instrumente care vă permit să obțineți rezultate fără întârzieri inutile. Cadrul Nette oferă exact acest lucru – dezvoltare rapidă, securitate și o gamă largă de instrumente precum Tracy și Latte, care simplifică procesul. Este suficient să instalați câteva pachete Nette, iar construirea unui astfel de microsite devine o joacă de copii. Și știți că nu există defecte de securitate ascunse.