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 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