Aplikace

Celá aplikaci začíná souborem index.php. V něm jednoduše vytvoříte instancí objektu Application, pak provedete routing a aplikaci spustíte. Tím končí úloha index.php. Dále aplikace vytvoří dle routingu potřebný controller, zavolá jeho motodu (=action, akci) s argumenty.

Vytvoření aplikace

Konstruktor obsahuje dva nepovinné argumenty.

  1. Umístění app adresáře – adresář s vlastní aplikací
  2. Umístění konfiguračního souboru

Nejbezpečnější řešení je mít aplikační adresář úplně mimo webroot. Bohužel, ne každný má placený webhosting a na těch free tato možnost vůbec nebývá. Proto defaultní nastavení je /app, tedy složka app umístěná ve webrootu.

Pokud adresář aplikace neleží mimo webroot, je nunté do něj soubor .htaccess (Deny from all), který zakáže přístup z webu.

Druhý argument je také nepovinný. Pomocí něj určité cestu ke konfiguračnímu souboru. Tato cesta je relativní, vycházející z umístění aplikačního adresáře (/app).

Spuštění aplikace

Po vytvoření instance aplikace musíte provést routing, případně zapnout AutoLoader. Pak už zbývá aplikaci pouze spustit pomocí metody run().

require 'haefko/loader.php';

$application = new Application('/../apps/my-eshop/app');
$application->autoload();

$router = $application->getRouter();
$router->connect( ... );

$application->run();

Možnosti konfiguračního souboru

V situaci, kdy nemáte vytvořen konfigurační soubor, nebo jej chcete pojmenovat jinak, musíte jeho jméno a umístění definovat pomocí druhého argumentu konstruktoru.

# konfiguracni soubor je uplne nekde jinde
$app = new Application('/app', '/../config/path/conf.yml');

# vypneme nacitani konfiguracniho souboru
$app = new Application('/app', false);

Pokud vypneme konfiguraci pomocí souboru, již není možné některá nastavení později změnit. Pokud je přesto definovat, musíte tak učinit před vytvořením instance aplikace.

require 'haefko/loader.php';

Config::write('cache.storage.path', 'my/path');

$application = new Application('/app', false);
...