1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 14:34:04 +00:00

Make resolving 'url' return a pre-created generator instance instead of creating it on every app('url') call

This commit is contained in:
lukinovec 2024-08-29 16:02:28 +02:00
parent ab02d2885c
commit 2266c47722

View file

@ -37,7 +37,7 @@ class UrlGeneratorBootstrapper implements TenancyBootstrapper
public function revert(): void
{
$this->app->bind('url', fn () => $this->originalUrlGenerator);
$this->app->extend('url', fn () => $this->originalUrlGenerator);
}
/**
@ -47,14 +47,13 @@ class UrlGeneratorBootstrapper implements TenancyBootstrapper
*/
protected function useTenancyUrlGenerator(): void
{
$this->app->extend('url', function (UrlGenerator $urlGenerator, Application $app) {
$newGenerator = new TenancyUrlGenerator(
$app['router']->getRoutes(),
$urlGenerator->getRequest(),
$app['config']->get('app.asset_url'),
$this->app['router']->getRoutes(),
$this->originalUrlGenerator->getRequest(),
$this->app['config']->get('app.asset_url'),
);
$newGenerator->defaults($urlGenerator->getDefaultParameters());
$newGenerator->defaults($this->originalUrlGenerator->getDefaultParameters());
$newGenerator->setSessionResolver(function () {
return $this->app['session'] ?? null;
@ -64,7 +63,6 @@ class UrlGeneratorBootstrapper implements TenancyBootstrapper
return $this->app->make('config')->get('app.key');
});
return $newGenerator;
});
$this->app->extend('url', fn () => $newGenerator);
}
}