Implemented dependency resolver.
This commit is contained in:
parent
77954f6281
commit
740a957e1a
2 changed files with 30 additions and 17 deletions
6
composer.lock
generated
6
composer.lock
generated
|
@ -174,11 +174,11 @@
|
|||
},
|
||||
{
|
||||
"name": "flashwave/index",
|
||||
"version": "v0.2501.182241",
|
||||
"version": "v0.2501.220016",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://patchii.net/flash/index.git",
|
||||
"reference": "cab5f480db65f8a720c1ad0852423708bc415446"
|
||||
"reference": "94107b7130a95e04c35291bdfcae4daeabc40abd"
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
|
@ -225,7 +225,7 @@
|
|||
],
|
||||
"description": "Composer package for the common library for my projects.",
|
||||
"homepage": "https://railgun.sh/index",
|
||||
"time": "2025-01-18T22:41:28+00:00"
|
||||
"time": "2025-01-22T00:16:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
|
|
|
@ -4,10 +4,10 @@ namespace Mince;
|
|||
use RuntimeException;
|
||||
use Flashii\{FlashiiClient,FlashiiUrls};
|
||||
use Flashii\Credentials\MisuzuCredentials;
|
||||
use Index\CsrfToken;
|
||||
use Index\{CsrfToken,Dependencies};
|
||||
use Index\Http\Routing\HttpRouter;
|
||||
use Index\Templating\TplEnvironment;
|
||||
use Index\Urls\ArrayUrlRegistry;
|
||||
use Index\Urls\{ArrayUrlRegistry,UrlRegistry};
|
||||
|
||||
require_once __DIR__ . '/../mince.php';
|
||||
|
||||
|
@ -18,22 +18,35 @@ $flashii = new FlashiiClient('Mince', new MisuzuCredentials($authToken), new Fla
|
|||
$cfg->getString('apii:api', FlashiiUrls::PROD_API_URL)
|
||||
));
|
||||
|
||||
$users = new Users($db);
|
||||
$deps = new Dependencies;
|
||||
$deps->register($db);
|
||||
$deps->register(AccountLinks::class);
|
||||
$deps->register(ArrayUrlRegistry::class);
|
||||
$deps->register(Authorisations::class);
|
||||
$deps->register(Capes::class);
|
||||
$deps->register(Servers::class);
|
||||
$deps->register(Skins::class);
|
||||
$deps->register(new TplEnvironment(MCR_DIR_TPL, ['Mince'], debug: MCR_DEBUG));
|
||||
$deps->register(Users::class);
|
||||
$deps->register(Verifications::class);
|
||||
|
||||
$users = $deps->resolve(Users::class);
|
||||
|
||||
try {
|
||||
$authInfo = $flashii->v1()->me();
|
||||
$deps->register($authInfo);
|
||||
$users->syncApiUser($authInfo);
|
||||
$userInfo = $users->getUser($authInfo->getId());
|
||||
} catch(RuntimeException $ex) {
|
||||
$authInfo = $sUserInfo = null;
|
||||
}
|
||||
|
||||
$csrfp = new CsrfToken(
|
||||
$deps->register($csrfp = new CsrfToken(
|
||||
$cfg->getString('csrfp:secret', 'wowof'),
|
||||
$authInfo === null ? $_SERVER['REMOTE_ADDR'] : $authToken
|
||||
);
|
||||
));
|
||||
|
||||
$templating = new TplEnvironment(MCR_DIR_TPL, ['Mince'], debug: MCR_DEBUG);
|
||||
$templating = $deps->resolve(TplEnvironment::class);
|
||||
$templating->addGlobal('globals', [
|
||||
'title' => 'Flashii Minecraft Servers',
|
||||
'is_authed' => $userInfo !== null,
|
||||
|
@ -41,29 +54,29 @@ $templating->addGlobal('globals', [
|
|||
'csrfp' => $csrfp->createToken(),
|
||||
]);
|
||||
|
||||
$accountLinks = new AccountLinks($db);
|
||||
$authorisations = new Authorisations($db);
|
||||
$accountLinks = $deps->resolve(AccountLinks::class);
|
||||
$authorisations = $deps->resolve(Authorisations::class);
|
||||
$authorisations->prune();
|
||||
$verifications = new Verifications($db);
|
||||
$verifications = $deps->resolve(Verifications::class);
|
||||
$verifications->prune();
|
||||
|
||||
$urls = new ArrayUrlRegistry;
|
||||
$urls = $deps->resolve(UrlRegistry::class);
|
||||
$templating->addFunction('url', $urls->format(...));
|
||||
|
||||
$router = new HttpRouter(errorHandler: new RouterErrorHandler($templating));
|
||||
$router->use('/', function($response, $request) { $response->setPoweredBy('Mince'); });
|
||||
|
||||
$router->register(new RpcRoutes($users, $accountLinks, $authorisations, $verifications, $cfg->getString('rpc:secret'), $cfg->getString('urls:clients')));
|
||||
$router->register($deps->construct(RpcRoutes::class, secretKey: $cfg->getString('rpc:secret'), clientsUrl: $cfg->getString('urls:clients')));
|
||||
|
||||
$homeRoutes = new HomeRoutes($templating, $urls, new Servers($db), $authInfo, $cfg->getString('site:login'));
|
||||
$homeRoutes = $deps->construct(HomeRoutes::class, loginUrl: $cfg->getString('site:login'));
|
||||
$router->register($homeRoutes);
|
||||
$urls->register($homeRoutes);
|
||||
|
||||
$clientRoutes = new ClientsRoutes($templating, $urls, $accountLinks, $authorisations, $verifications, $csrfp, $authInfo);
|
||||
$clientRoutes = $deps->construct(ClientsRoutes::class);
|
||||
$router->register($clientRoutes);
|
||||
$urls->register($clientRoutes);
|
||||
|
||||
$skinsRoutes = new SkinsRoutes($templating, $urls, $accountLinks, new Skins($db), new Capes($db), $csrfp, $authInfo, $cfg->getString('urls:skins_base'));
|
||||
$skinsRoutes = $deps->construct(SkinsRoutes::class, baseUrl: $cfg->getString('urls:skins_base'));
|
||||
$router->register($skinsRoutes);
|
||||
$urls->register($skinsRoutes);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue