Boot - laborci/eternity2 GitHub Wiki

Boot

Minden alkalmazásból érkező request (a direkt fájl requesteket leszámítva) az index.php-re irányul.

<?php
use Eternity2\System\Env\Env;
use Eternity2\System\StartupSequence\StartupSequence;

include __DIR__.'/../vendor/autoload.php';

Env::loadFacades();

new StartupSequence(__DIR__.'/..');

Env::loadFacades()

Betölti az env facade-et, ami a konfigurációs kulcsok eléréséhez nyújt interface-t.

  • env($key = null)
  • setenv($key, $value)
  • unsetenv($key)

Ezekről részletesebben a konfiguráció szekcióban olvashatsz.

StartupSequence

A startup-sequence betölti a konfigurációs állományokat, létrehoz egy Request példányt és szervízként regisztrálja azt. Ezt követően a projekt boot-sequence pontjain lépked végig. Ez egy alap projekt esetében 2 vagy 3 lépésből áll, amit a ./etc/ini/env.yml állomány boot-sequence kulcsán tudsz definiálni.

boot-sequence:
  - \Application\Service\ServiceRegistry
  - \Eternity2\RemoteLog\RemoteLogBoot
  - \Eternity2\System\Mission\MissionRunner
  • a ServiceReqistry a szervizeid regisztrációjáért felelős boot szegmens
  • a RemoteLogBoot a RemoteLog debug eszközt inicializálja
  • a MissionRunner pedig elindítja a mission választót

MissionRunner

Az eternity projektek missionökre vannak szegmentálva. Mission lehet a CLI futási mód, illetve domainek szerint definiálhatsz missiönöket. Az egyes missionök végrehajtói a misszionáriusok (Missionary)

A missionöket a ./etc/ini/env.yml fájlban a missions kulcsa alatt tudod megadni.

Egy mission definíció az alábbi kulcsokat tartalmazhatja:

  • pattern: string, vagy stringek tömbje. Azaz, mely domainek esetében kell az adott mission-t futtatni. A string glob pattern is lehet (azaz használhatsz benne * és ? wildcardokat, a {domain} string pedig minden esetben a fő konfigurációban megadott domain-ra lesz lecserélve. Ha cli működés missionjét szeretnéd inicializálni, akkor a pattern egy kettőspont : kell legyen.
  • mission: A Missionary interface-t megvalósító osztályod neve
  • config: A Missinary konfigurációja kerül ide - ha van.
  • modules: A Missionary által használt modulok leírói kerülnek ide.
  • reroute: Ha az adott domain route-ot felismertük ugyan, de másik domainre szeretnénk irányítani, akkor az kerül ide. (tipikusan pl.: mydomain.com => www.mydomain.com)

Alapesetben kétféle Missionary létezik:

  • \Eternity2\Mission\Cli\Application: CLI alkalmazás kiinduló pontja
  • \Eternity2\Mission\Web\Application: Minden egyéb webalkalmazás abstract kiinduló pontja

A Mission runner létrehozza a Missionary-t, és