Zend FrameworkのHTTPリクエストオブジェクト

開発から遠ざかっていたので、久々の投稿になりますが、今回は新たにZend Frameworkを使って開発することになりました。いきなりマニュアルを読むのは退屈なので、まずは、

あるいは、

を読み、後ほどプログラマ向けリファレンスガイドを読むことにしました。
そこで、HTTPリクエストオブジェクトでいきなり躓いたので、メモしておきます。上記の書籍によれば、HTTPリクエストオブジェクトでは、
$_GET / $_POST
は使わず、それぞれ
getQuery() / getPost()
を使うルールことになっているそうなのだが、実際に、

$request = $this->getRequest();
$foo = $request->getQuery(’foo’);

として、
http://www.example.com/index/index/foo/1/bar/1
にアクセスしても、データは取得できませんでした。もちろん、
http://www.example.com/index/index?foo=1&bar=1
にアクセスすれば、データは取得できます。やむを得ず、

$foo = $this->_getParam(’foo’);
$bar = $this->_getParam(’bar’);

としてひとまず無事解決しました。(ちなみに面倒だったので、Postは試していません。今回はGetのみです。ごめんなさい。)そこで、いろいろと実験してみてわかったのは、以下の通りです。

これはNG

$foo = $_GET[’foo’];

これらはOK

$request = $this->getRequest();
$foo = $request->getParam(’foo’);

// あるいは

$foo = $this->_getParam(’foo’);