Cum să scrii micro-site-uri
Imaginați-vă că trebuie să creați rapid un mic site web pentru un eveniment viitor al companiei dvs. Trebuie să fie simplu, rapid și fără complicații inutile. Poate credeți că pentru un proiect atât de mic nu aveți nevoie de un framework robust. Dar ce se întâmplă dacă utilizarea framework-ului Nette poate simplifica și accelera fundamental acest proces?
Chiar și la crearea site-urilor web simple, nu doriți să renunțați la confort. Nu doriți să reinventați ceea ce a fost deja rezolvat. Fiți liniștit leneș și lăsați-vă răsfățat. Nette Framework poate fi utilizat excelent și ca micro framework.
Cum poate arăta un astfel de microsite? De exemplu, astfel încât întregul cod al site-ului să fie plasat într-un singur
fișier index.php
în directorul public:
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
// creează containerul DI pe baza configurației din config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();
// setăm rutarea
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);
// rută pentru URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
// detectăm limba browserului și redirecționăm către URL /en sau /de etc.
$supportedLangs = ['en', 'de', 'cs'];
$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
$presenter->redirectUrl("/$lang");
});
// rută pentru URL https://example.com/cs sau https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
// afișăm șablonul corespunzător, de exemplu ../templates/en.latte
$template = $presenter->createTemplate()
->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
return $template;
});
// pornește aplicația!
$container->getByType(Nette\Application\Application::class)->run();
Restul vor fi șabloane stocate în directorul părinte /templates
.
Codul PHP din index.php
mai întâi pregătește mediul, apoi
definește rutele și în final
pornește aplicația. Avantajul este că al doilea parametru al funcției addRoute()
poate fi un callable, care se
execută după deschiderea paginii corespunzătoare.
De ce să folosiți Nette pentru microsite-uri?
- Programatorii care au încercat vreodată Tracy nu își pot imagina astăzi că ar programa ceva fără ea.
- În primul rând, veți utiliza sistemul de șabloane Latte, deoarece de la 2 pagini veți dori să aveți layout-ul și conținutul separate.
- Și cu siguranță doriți să vă bazați pe escaparea automată, pentru a nu crea o vulnerabilitate XSS.
- Nette asigură, de asemenea, că în caz de eroare nu se vor afișa niciodată mesaje de eroare PHP pentru programatori, ci o pagină inteligibilă pentru utilizator.
- Dacă doriți să obțineți feedback de la utilizatori, de exemplu sub forma unui formular de contact, atunci veți adăuga și formulare și bază de date.
- Formularele completate le puteți, de asemenea, trimite ușor prin email.
- Uneori vă poate fi utilă cache-uirea, de exemplu dacă descărcați și afișați feed-uri.
În zilele noastre, când viteza și eficiența sunt esențiale, este important să aveți instrumente care vă permit să obțineți rezultate fără întârzieri inutile. Nette framework vă oferă exact asta – dezvoltare rapidă, securitate și o gamă largă de instrumente, cum ar fi Tracy și Latte, care simplifică procesul. Este suficient să instalați câteva pachete Nette și construirea unui astfel de microsite devine brusc o joacă de copii. Și știți că nu se ascunde nicio gaură de securitate nicăieri.