忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/04/23 22:36 |
AuraPHP 1.0.1 Aura.Http
Aura.Httpは、HTTPリクエストを行ったりするライブラリです。
実体は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


2013/06/17 23:48 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP5.4.7 トレイト | HOME | 買ったものリスト 2013/06/16>>
忍者ブログ[PR]