Hogyan írjunk mikrooldalakat
Képzelje el, hogy gyorsan létre kell hoznia egy kis weboldalt a cégének egy közelgő eseményéhez. Egyszerűnek, gyorsnak és felesleges bonyodalmak nélkülinek kell lennie. Azt gondolhatod, hogy egy ilyen kis projekt nem igényel robusztus keretrendszert. De mi van akkor, ha a Nette keretrendszer használatával jelentősen leegyszerűsítheti és felgyorsíthatja ezt a folyamatot?
Még egyszerű weboldalak készítésekor sem szeretne lemondani a kényelemről. Nem akarja újra feltalálni a kereket. Legyen nyugodtan lusta és kényeztesse magát. A Nette keretrendszer mikro keretrendszerként is kiválóan használható.
Hogyan nézhet ki egy ilyen mikrooldal? Például a weboldal teljes kódja egyetlen index.php
fájlba helyezhető
a nyilvános mappában:
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
// létrehoz egy DI konténert a config.neon konfiguráció alapján
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();
// útválasztás beállítása
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);
// útvonal az URL https://example.com/ URL-hez
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
// a böngésző nyelvének felismerése és átirányítás az URL /en vagy /de stb. címre.
$supportedLangs = ['en', 'de', 'cs'];
$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
$presenter->redirectUrl("/$lang");
});
// útvonal az URL-hez https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
// a megfelelő sablon megjelenítése, például ../templates/en.latte
$template = $presenter->createTemplate()
->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
return $template;
});
// futtassuk az alkalmazást!
$container->getByType(Nette\Application\Application::class)->run();
Minden más a /templates
szülőmappában tárolt sablonok lesznek.
A index.php
oldalon található PHP-kód először beállítja a
környezetet, majd definiálja az útvonalakat, végül pedig futtatja az
alkalmazást. Ennek előnye, hogy a addRoute()
függvény második paramétere lehet egy hívható, amely a
megfelelő oldal megnyitásakor végrehajtódik.
Miért használja a Nette-et a mikrooldalakhoz?
- Azok a fejlesztők, akik valaha is kipróbálták a Tracy-t, ma már el sem tudják képzelni a kódolást nélküle.
- De mindenekelőtt a Latte templating rendszert fogja kihasználni, mert mindössze 2 oldalról akarja szétválasztani az elrendezést és a tartalmat.
- És mindenképpen az automatikus escapingre akarsz támaszkodni az XSS sebezhetőségek elkerülése érdekében.
- A Nette gondoskodik arról is, hogy hiba esetén soha ne jelenjenek meg PHP hibaüzenetek, hanem egy felhasználóbarát oldal jelenjen meg.
- Ha visszajelzést szeretne kapni a felhasználóktól, például kapcsolatfelvételi űrlap formájában, akkor űrlapokat és adatbázist is hozzáadhat.
- A kitöltött űrlapokat is könnyen elküldheti e-mailben.
- Néha hasznos lehet a gyorsítótárazás, például a feedek letöltésekor és megjelenítésekor.
A mai korban, amikor a gyorsaság és a hatékonyság kulcsfontosságú, fontos, hogy olyan eszközökkel rendelkezzen, amelyekkel felesleges késedelmek nélkül érhet el eredményeket. A Nette keretrendszer pontosan ezt kínálja: gyors fejlesztést, biztonságot és olyan eszközök széles skáláját, mint a Tracy és a Latte, amelyek leegyszerűsítik a folyamatot. Csak telepítsen néhány Nette csomagot, és egy ilyen microsite építése gyerekjátékká válik. És tudja, hogy nincsenek rejtett biztonsági hibák.