PHPでよく使われるグローバル変数。EC-CUBE3では全く使われていないので驚かれた方もおられるかもしれませんね。基本的にPHPフレームワークでは$_GETや$_POSTを便利なラッパー経由で取得します。

これらの変数、EC-CUBE3ではコントローラに渡されるパラメータの1つ$requestから取得することができます。$requestが存在しない場所では$app[‘request’]のように$app変数を使用することも可能です。

コントローラ内での使用方法

$_GET変数の取得方法

取得の際に値がセットされていない場合のデフォルト値を第2引数で指定可能です。

何も指定していない場合はnullが返却されます。isset()で存在確認しなくてもnoticeにならないのが良いですね。

//$_GET['id']
// idがセットされていなければnull
$request->query->get('id');

// デフォルト値を指定することもできます
$request->query->get('id', 1);

$_POST変数の取得方法

$request->request->get('category_id', 'default category id');//$_POST['category_id']

$_COOKIE変数の利用方法

$request->cookies->get('cookie_name');

$_SERVER変数の利用方法

$request->server->get('HTTP_HOST'); // $_SERVER['HTTP_HOST']

$request->server->get('REQUEST_URI');// $_SERVER['REQUEST_URI']

 

EC-CUBE3はSymfony2をベースとしていますのでこちらのサイトが参考になります。

参考URL Symfony and HTTP Fundamentals