Nette Documentation Preview

Bootstrap

Bootstrap je zaváděcí kód, který inicializuje prostředí, vytvoří dependency injection (DI) kontejner a spustí aplikaci. Řekneme si:

  • jak se konfiguruje pomocí NEON souborů
  • jak na produkční a vývojářský režim
  • jak vytvořit systémový kontejner
  • jak používat a vytvářet rozšíření pro kontejner

Nastavení aplikace má v Nette na starosti třída Configurator. Ovlivňujeme ho zejména pomocí jednoho nebo více konfiguračních NEON soborů.

Konfigurátor

K nastavení aplikace nám poslouží třída Configurator, kterou použijeme v zaváděcím souboru bootstrap.php umístěném ve složce app/.

Vývojářský režim

Nejzákladnějším nastavením je to, které říká, zda aplikace běží v produkčním nebo vývojářském režimu. To například ovlivňuje Tracy a říká ji, zda chyby zobrazovat nebo logovat. To je potřeba nastavit ihned při startu, tedy dřív, než se zpracovávají konfigurační soubory, protože musí být jasné i to, zda se má případná chyba v konfiguračním souboru zobrazit nebo zalogovat. Prostředí nastavíme pomocí setDebugMode() a zapneme Tracy enableDebugger().

// aktivuje laděnku pouze pro dané ip adresy
$configurator->setDebugMode(array('90.180.45.360', '90.180.45.361'));
// nebo nikomu
$configurator->setDebugMode(FALSE);

$configurator->enableDebugger(__DIR__ . '/../log'); // Do adresáře log/ se bodou ukládat výstupy Laděnky

Cachování konfigurace

Konfigurace se načte a zpracuje jen jednou a výsledek se uloží do cache, což zásadním způsobem aplikaci zrychluje. Proto nejprve nastavíme cestu setTempDirectory(), kam se bude cache ukládat.

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

RobotLoader

Zpravidla budeme chtít automaticky načítat zdrojové soubory aplikace pomocí RobotLoaderu, musíme ho tedy nastartovat.

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->register();

Přidání konfiguračního souboru

Nyní už stačí jen uvést cestu ke konfiguračnímu souboru, který se nachází ve složce app/config, pomocí `addConfig():

$configurator->addConfig(__DIR__ . '/config/config.neon');

Pokud chceme přidat více nezávislých souborů, můžeme funkci addConfig() zavolat vícekrát.