Skip to content

Commit

Permalink
Fixed router context creation
Browse files Browse the repository at this point in the history
  • Loading branch information
simba77 committed Feb 11, 2024
1 parent 5966c74 commit 1e85230
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
3 changes: 2 additions & 1 deletion system/src/ConfigProvider.php
Expand Up @@ -32,6 +32,7 @@
use Johncms\Middlewares\SessionMiddleware;
use Johncms\Router\Router;
use Johncms\Router\RouteRequirements;
use Johncms\Router\RouterFactory;
use Johncms\Security\HTMLPurifier;
use Johncms\Settings\SiteSettings;
use Johncms\Users\AuthProviders\CookiesAuthProvider;
Expand Down Expand Up @@ -92,7 +93,6 @@ private function getDependencies(): array
SiteSettings::class => SiteSettings::class,
DebugBar::class => DebugBar::class,
ExceptionHandlers::class => ExceptionHandlers::class,
Router::class => Router::class,
RouteRequirements::class => RouteRequirements::class,
],

Expand All @@ -109,6 +109,7 @@ private function getDependencies(): array
Dispatcher::class => DispatcherFactory::class,
Serializer::class => SerializerFactory::class,
\HTMLPurifier::class => HTMLPurifier::class,
Router::class => RouterFactory::class,
],
];
}
Expand Down
36 changes: 36 additions & 0 deletions system/src/Router/RouterFactory.php
@@ -0,0 +1,36 @@
<?php

declare(strict_types=1);

namespace Johncms\Router;

use Illuminate\Contracts\Container\Container;
use Johncms\Http\Request;
use Symfony\Component\Routing\RequestContext;

class RouterFactory
{
public function __invoke(Container $container): Router
{
$request = $container->get(Request::class);
$context = new RequestContext(
'',
$request->getMethod(),
$request->getUri()->getHost(),
$request->isHttps() ? 'https' : 'http',
80,
443,
$request->getUri()->getPath(),
$request->getUri()->getQuery()
);

return new Router(
$container->get(RouteLoader::class),
$context,
$request,
$container,
$container->get(ParametersInjector::class),
$container->get(MiddlewareDispatcher::class)
);
}
}

0 comments on commit 1e85230

Please sign in to comment.