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
ServiceReqistrya szervizeid regisztrációjáért felelős boot szegmens - a
RemoteLogBoota RemoteLog debug eszközt inicializálja - a
MissionRunnerpedig 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 megadottdomain-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 neveconfig: 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