Aura.Httpは、HTTPリクエストを行ったりするライブラリです。
実体はCURLのラッパですが、CURLが無かったときは自力でリクエストしてくれるみたいです。
あとheader()等ブラウザに返すレスポンスも出力できるようです。
ということで早速使ってみようとしたのですが、とりあえずコンストラクタが異様にめんどいです。
こんなのサンプルがないと絶対わからんわ。
なんでAura\Http\Message\Factoryを2回も使っているのでしょうか?
これについては素直にinstance.phpを使った方がよいでしょう。
ていうか何故instance.phpの自動インクルードはないのでしょうか。
インクルードしてしまえば使用方法自体は非常に簡単です。
使ってみましょう。
どういうことだよ。
Array to string conversionというNoticeが発生します。
発生箇所はAura\Http\Adapter\Curl.phpです。
一回目のsend()の時点のデータが、その後newRequest()で新しいリクエストを取得したのにも関わらず残ってるのですよね。
これを回避するには、再度ややこしいコンストラクタを使って完全に新たなHTTPオブジェクトを作らないといけないっぽいです。
せっかくのnewRequest()意味なし。
うーむ、Auraは素晴らしいフレームワークだ、って話自体が微妙なことになってきたような気がしないでもないような。
AuraPHPの記事
実体はCURLのラッパですが、CURLが無かったときは自力でリクエストしてくれるみたいです。
あとheader()等ブラウザに返すレスポンスも出力できるようです。
ということで早速使ってみようとしたのですが、とりあえずコンストラクタが異様にめんどいです。
こんなのサンプルがないと絶対わからんわ。
なんでAura\Http\Message\Factoryを2回も使っているのでしょうか?
これについては素直にinstance.phpを使った方がよいでしょう。
ていうか何故instance.phpの自動インクルードはないのでしょうか。
インクルードしてしまえば使用方法自体は非常に簡単です。
使ってみましょう。
<?php
require_once('path/to/channel/vendor/autoload.php');
// Aura.Http
$http = require_once('path/to/channel/vendor/aura/http/scripts/instance.php');
// リクエスト
$request = $http->newRequest();
$request->setMethod(Aura\Http\Message\Request::METHOD_GET);
$request->setUrl('http://example.com/hoge.php');
// BASIC認証
$request->setAuth(Aura\Http\Message\Request::AUTH_BASIC)
->setUsername('user')->setPassword('pass');
// 送信実行
$stack = $http->send($request);
// 返り値はSplStackだが必ず[0]
// 本文
$body = $stack[0]->getContent();
// ステータス
$statusCode = $stack[0]->getStatusCode(); // 200
$statusText = $stack[0]->getStatusText(); // OK
// レスポンスヘッダのリスト
$headers = $stack[0]->getHeaders();
// Content-Lengthヘッダ
$contentlength = $stack[0]->headers->{'Content-Length'}; // Aura\Http\Header
// Cookie
$stack[0]->getCookies(); // Aura\Http\Cookie\Collection
// PHPSESSID
$stack[0]->getCookies()->PHPSESSID; // Aura\Http\Cookie
// 2回目のリクエスト
$request2 = $http->newRequest();
$request2->setUrl('http://example.com/fuga.php');
// セッション引き継ぎ
$request2->setCookies($stack[0]->getCookies());
$stack2 = $http->send($request2); // ここでエラー
……エラーになりました。どういうことだよ。
Array to string conversionというNoticeが発生します。
発生箇所はAura\Http\Adapter\Curl.phpです。
一回目のsend()の時点のデータが、その後newRequest()で新しいリクエストを取得したのにも関わらず残ってるのですよね。
これを回避するには、再度ややこしいコンストラクタを使って完全に新たなHTTPオブジェクトを作らないといけないっぽいです。
せっかくのnewRequest()意味なし。
うーむ、Auraは素晴らしいフレームワークだ、って話自体が微妙なことになってきたような気がしないでもないような。
AuraPHPの記事
PR