# Slim 4 get route identifier

**URL:** <https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462>\
**Category:** Questions\
**Created:** [September 23, 2019, 3:08pm UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462 "2019-09-23T15:08:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Manrix](https://avatars.discourse-cdn.com/v4/letter/m/ecb155/32.png) [@Manrix](https://discourse.slimframework.com/u/Manrix)\
**Post date:** [September 23, 2019, 3:08pm UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462/1 "2019-09-23T15:08:10Z")

</div>

Hi.  
I’m trying to get the route identifier but it returns null.

```auto
$app = \Slim\Factory\AppFactory::create();

$app->get('/', function (Request $request, Response $response, array $args) use ($app) {
    $response->getBody()->write('Hello World');
    $response = $response->withAddedHeader('Content-Type', 'text/html');
    return $response;
})->setName('home');

$app->addRoutingMiddleware();

$identifier = $app->getRouteResolver()->computeRoutingResults($request->getUri(), $request->getMethod())->getRouteIdentifier();

```

Do you know the reason ?  
Thanks.

---

<div class="post-metadata">

**Author:** ![odan](https://avatars.discourse-cdn.com/v4/letter/o/9de053/32.png) [@odan](https://discourse.slimframework.com/u/odan)\
**Post date:** [September 24, 2019, 10:55am UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462/2 "2019-09-24T10:55:42Z")

</div>

You may add the middleware first…

```php
$app = \Slim\Factory\AppFactory::create();
$app->addRoutingMiddleware();

// Routes ...

```

… and start the Slim application to get the result:

```php
$app->run();

```

---

<div class="post-metadata">

**Author:** ![Manrix](https://avatars.discourse-cdn.com/v4/letter/m/ecb155/32.png) [@Manrix](https://discourse.slimframework.com/u/Manrix)\
**Post date:** [September 24, 2019, 12:18pm UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462/3 "2019-09-24T12:18:29Z")

</div>

I tried this:

```auto
$app = \Slim\Factory\AppFactory::create();
$app->addRoutingMiddleware();

$app->get('/', function (Request $request, Response $response, array $args) use ($app) {
    $response->getBody()->write('Hello World');
    $response = $response->withAddedHeader('Content-Type', 'text/html');
    return $response;
})->setName('home');

$app->run();

$request = ServerRequestCreatorFactory::create()->createServerRequestFromGlobals();
var_dump($app->getRouteResolver()->computeRoutingResults($request->getUri(), $request->getMethod())->getRouteIdentifier());

```

But it returns `null`.

---

<div class="post-metadata">

**Author:** ![odan](https://avatars.discourse-cdn.com/v4/letter/o/9de053/32.png) [@odan](https://discourse.slimframework.com/u/odan)\
**Post date:** [September 24, 2019, 1:45pm UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462/4 "2019-09-24T13:45:39Z")

</div>

That’s not how Slim works. Slim creates its own ServerRequest variable. It makes no sense to create a custom ServerRequest “outside” the Slim scope. Afaik, you can only get the right route context within a middleware and controller action.

This should do the trick:

```php
$app = \Slim\Factory\AppFactory::create();
$app->addRoutingMiddleware();

$app->get('/', function (Request $request, Response $response) {
    $routeIdentifier = \Slim\Routing\RouteContext::fromRequest($request)->getRoutingResults()->getRouteIdentifier();
    var_dump($routeIdentifier);
});

$app->run();

```

---

<div class="post-metadata">

**Author:** ![Manrix](https://avatars.discourse-cdn.com/v4/letter/m/ecb155/32.png) [@Manrix](https://discourse.slimframework.com/u/Manrix)\
**Post date:** [September 24, 2019, 2:15pm UTC](https://discourse.slimframework.com/t/slim-4-get-route-identifier/3462/5 "2019-09-24T14:15:43Z")

</div>

Ah ok. I thought that slim just used the ServerRequestCreatorFactory to create the request object.  
Thanks.

Ps. I saw some of your packages. Nice work. 😉
