Help us understand the problem. What is going on with this article?

php slimのRequestオブジェクトからリクエストURLの絶対URLを取得する

困ったこと

PHPのSlim フレームワークで開発をしていてリクエストの絶対URLが取得したかった。

TL;DR

ストリングでキャストするとでてくる。

(string)$this->request->getUri();

経緯

slimで開発をしていて、ちょっとリクエストされたURIをセッションに保存して、別の処理をした後に、セッションから読み出して、リダイレクトで戻りたかった。

PSR-7のRequestオブジェクトが、こんな感じで、これを自分で結合していくのは面倒。

何かよい方法あるはずって探した。

‌‌> $this->request->getUri()
< Slim\Psr7\Uri::__set_state(array(
   'scheme' => 'https',
   'user' => '',
   'password' => '',
   'host' => 'example.com',
   'port' => 443,
   'path' => '/oauth2/authorize',
   'query' => 'state=xxxxxx',
   'fragment' => '',
))

キャストするだけだった(笑)

> ‌‌(string)$this->request->getUri()
< https://example.com/oauth2/authorize?state=xxxxx

参考文献

https://discourse.slimframework.com/t/building-the-full-request-url/626

idani
井谷(いだに)と申します。 前職では、cakePHPとjQueryとVue.jsを使って、メール配信、SMS配信、セミナー募集システム、かんたんな決済処理、アフィリエイトシステムなどを開発していました。 使える言語は、C、C++、Perl、C#、PHP、JSになります。 昔々、Gentoo Linuxの翻訳作業をしていました。
https://hirotae.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away