2011年11月1日火曜日

Symfony2のRequestクラスのserver値の取り出し

コントローラー内でRequestクラスを取得するのは

$request = $this->getRequest();

でOKですが、その後でつまづきました。

今回欲しい値は$_SERVER['HTTP_USER_AGENT']だったのですが、

$sever = $request->server;

で$_SERVER変数の値は取れているようですが、

$agent = $request->server->parameters['HTTP_USER_AGENT'];

で取得しようとするとエラーが出ました。
なんかparametersはprotectedだからダメって感じです。

でvendor¥symfony¥src¥Symfony¥Component¥HttpFoundation¥Request.phpを開いてのぞく。
 ↓
Request->serverはコメントから¥vendor¥symfony¥src¥Symfony¥Component¥HttpFoundation¥ServerBag.phpらしいのでを開いてのぞく。
 ↓
メソッドが1つポツンとあるだけなので、親クラスの¥vendor¥symfony¥src¥Symfony¥Component¥ParameterBag.phpを開いてのぞく。

メソッドがたくさん。
all()でparametersが返すらしい。試しに使ってみるが全部はいらないんだよね。
get($path, $default, $deep)でparametersの値を返すっぽい。

$agent = $request->server->get('HTTP_USER_AGENT');

で無事値を拾えた。フゥ〜、一件落着です。

0 件のコメント:

コメントを投稿