今回は、ユーザがWEBアプリに対して送る様々なリクエストをキャッチする方法から
HTTP通信に対するURLの取得やヘッダー情報の操作等を纏めてご紹介いたします
リクエストパラメータを専用メソッドで取得しよう
ZendFramework2(ZF2)でのリクエストパラメータの取得方法としては、
パラメータの種類によって適切な取得方法が用意されています。
各パラメータを取得するには、それぞれに専用のメソッドが用意されていますので、
下記に纏めて列挙いたします。
// POSTパラメータの取得 $this->params()->fromPost( 'param_name', 'default_value' ); // GETパラメータの取得 $this->params()->fromQuery( 'param_name', 'default_value' ); // ルートで設定した項目からマッチしたものを取得します $this->params()->fromRoute( 'param_name', 'default_value' ); // ヘッダーから取得します $this->params()->fromHeader( 'param_name', 'default_value' ); // アップロードファイルを取得します。 $this->params()->fromFiles( 'param_name', 'default_value' );
第一引数にパラメータ名を入力し、第二引数に第一引数のパラメータが見つからなかった時に
セットするデフォルト値を指定します
上記の例では、mvcロジック内のAbstractActionControllerを継承したコントローラ内での
実装を想定しています。ですので、$this->params()となっている事を加味して
使用してください。
HTTPリクエストに対する操作
-------------------------- | METHOD | URI | VERSION | -------------------------- | HEADERS | -------------------------- | BODY | --------------------------
HTTPリクエストに対する操作には、様々な専用メソッドが用意されていますので、
そちらを使ってリクエストを解析したり、リクエスト事態を作成、変更したりといった事が
柔軟に行えるよう設計されています
下記にそれらのメソッドを列挙致しましたので、ご参考にして下さい。
Request::fromString(string $string) | HTTPリクエストを表す文字列からRequestオブジェクトを作成するファクトリーメソッドです。 |
---|---|
Returns Zend\Http\Request | |
setMethod(string $method) | リクエストメソッドを設定します |
Returns Zend\Http\Request | |
getMethod() | リクエストメソッドを取得します |
Returns string | |
setUri(string|Zend\Uri\Http $uri) | リクエストURLをセットします |
Returns Zend\Http\Request | |
getUri() | リクエストURLを取得します |
Returns Zend\Uri\Http | |
getUriString() | リクエストURLを文字列として取得します |
Returns string | |
setVersion(string $version) | HTTPバーションを1.0もしくは1.1のいずれかの値を設定する事が出来ます |
Returns Zend\Http\Request | |
getVersion() | HTTPのバージョンを取得します |
Returns string | |
setQuery(Zend\Stdlib\ParametersInterface $query) | GETリクエストパラメータをセット設定します |
Returns Zend\Http\Request | |
getQuery(string|null $name, mixed|null $default) | GETリクエストパラメータを取得します |
Returns string, Zend\Stdlib\ParametersInterface, or null depending on value of $name argument. | |
setPost(Zend\Stdlib\ParametersInterface $post) | POSTパラメータを設定します |
Returns Zend\Http\Request | |
getPost(string|null $name, mixed|null $default) | POSTパラメータを取得します |
Returns string, Zend\Stdlib\ParametersInterface, or null depending on value of $name argument. | |
getCookie() | クッキーのヘッダを取得します |
Returns Zend\Http\Header\Cookie | |
setFiles(Zend\Stdlib\ParametersInterface $files) | ファイルパラメータを設定します |
Returns Zend\Http\Request | |
getFiles(string|null $name, mixed|null $default) | ファイルパラメータを取得します |
Returns string, Zend\Stdlib\ParametersInterface, or null depending on value of $name argument. | |
setHeaders(Zend\Http\Headers $headers) | リクエストヘッダーを設定します |
Returns Zend\Http\Request | |
getHeaders(string|null $name, mixed|null $default) | リクエストヘッダーを取得します |
Returns Zend\Http\Headers if $name is null. Returns Zend\Http\Header\HeaderInterface or ArrayIterator if $name matches one or more stored headers, respectively. | |
setMetadata(string|int|array|Traversable $spec, mixed $value) | メタデータを設定します |
Returns Zend\Http\Request | |
getMetadata(null|string|int $key, null|mixed $default) | メタデータを取得します |
Returns mixed | |
setContent(mixed $value) | リクエストボディ(コンテンツ)を設定します |
Returns Zend\Http\Request | |
getContent() | リクエストボディ(コンテンツ)を取得 |
Returns mixed | |
isOptions() | OPTIONSメソッドのリクエストか否かを返却する |
Returns bool | |
isGet() | GETリクエストか否かを返却する |
Returns bool | |
isHead() | HEADメソッドのリクエストか否かを返却する |
Returns bool | |
isPost() | POSTリクエストか否かを返却する |
Returns bool | |
isPut() | PUTメソッドのリクエストか否かを返却する |
Returns bool | |
isDelete() | DELETEメソッドのリクエストか否かを返却する |
Returns bool | |
isTrace() | TRACEメソッドのリクエストか否かを返却する |
Returns bool | |
isConnect() | CONNECTメソッドのリクエストか否かを返却する |
Returns bool | |
isPatch() | PATCHメソッドのリクエストか否かを返却する |
Returns bool | |
isXmlHttpRequest() | JavascriptのXMLHttpRequestメソッドのリクエストか否かを返却する |
Returns bool | |
isFlashRequest() | Flashのリクエストか否かを返却する |
Returns bool | |
renderRequestLine() | HTTP用にフォーマットした最後の行を返却する |
Returns string | |
toString() | 文字列として返却します |
Returns string | |
__toString() | 該当オブジェクトのキャストを可能にします |
Returns string |