Nette Documentation Preview

syntax
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
<?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 |bootstrap:], majd definiálja az [útvonalakat |application:routing#dynamic-routing-with-callbacks], 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? .[#toc-why-use-nette-for-microsites]
----------------------------------------------------------------------------------

- Azok a fejlesztők, akik valaha is kipróbálták a [Tracy-t |tracy:], ma már el sem tudják képzelni a kódolást nélküle.
- De mindenekelőtt a [Latte |latte:] templating rendszert fogja kihasználni, mert mindössze 2 oldalról akarja szétválasztani [az elrendezést és a tartalmat |latte:template-inheritance].
- És mindenképpen az [automatikus escapingre |latte:safety-first] 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 |forms:] és [adatbázist |database:] is hozzáadhat.
- A kitöltött űrlapokat is könnyen [elküldheti e-mailben |mail:].
- Néha hasznos lehet a [gyorsítótárazás |caching:], 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.

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:

&lt;?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.