ZendFramework2(ZF2)における各リクエストパラメータの取得と、HTTP関係への制御



今回は、ユーザがWEBアプリに対して送る様々なリクエストをキャッチする方法から
HTTP通信に対するURLの取得やヘッダー情報の操作等を纏めてご紹介いたします

  1. リクエストパラメータを専用メソッドで取得しよう
  2. HTTPリクエストに対する操作

リクエストパラメータを専用メソッドで取得しよう





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


コメントをお待ちしています

人気の投稿

Category

Algorithm (2) Android (8) ASP/aspx (1) Blogger (2) C/C++ (1) Chrome (5) CSS (9) Firefox (4) Fortran (1) Google (9) GoogleMap (2) HTML (12) IE (3) Information (4) iOS (2) iPhone/iPad/iPod (2) Java (6) JavaScript (16) jQuery (9) JSP (1) LifeRecipe (5) Linux (2) Macintosh (2) MapKit (4) Marketing (7) MySQL (3) NAMAZU (2) Objective-C (7) Other (7) Perl (1) PHP (9) Python (1) RSS/Atom (2) Ruby (1) Safari (2) SEO (11) Smarty (2) SQL (2) Tex (1) Three.js (1) Twitter (1) TwitterLog (313) UIKit (5) Unix (1) VBA/VBS (1) Windows (5) WordPress (3) Writing (5) XAMPP (1) XML (1) Yahoo (2) ZendFramework2 (14)

Archives