(PHP)MVCモデルを使ったPHPアプリケーションのリクエスト部分のソースです。
GET,POSTで送られてくるリクエストをオブジェクトとして扱えるようクラス化します。
参考先まるままですが、こんな感じ。
Request.php
コントローラからはこのクラスを呼び出し、リクエストにアクセスします。
require_once( "QueryString.php" );
require_once( "Post.php" );
class Request
{
// POSTパラメータ
private $_post;
// GETパラメータ
private $_query;
// コンストラクタ@
public function __construct()
{
$this->_post = new Post();
$this->_query = new QueryString();
}
// POST変数取得
public function getPost($key = null)
{
if (null == $key) {
return $this->_post->get();
}
if (false == $this->_post->has($key)) {
return null;
}
return $this->_post->get($key);
}
// GET変数取得
public function getQuery($key = null)
{
if (null == $key) {
return $this->_query->get();
}
if (false == $this->_query->has($key)) {
return null;
}
return $this->_query->get($key);
}
}
?>
RequestVariables.php
リクエストの変数を抽象化するためのクラスです。
// リクエスト変数抽象クラス
abstract class RequestVariables
{
protected $_values;
// コンストラクタ
public function __construct()
{
$this->setValues();
}
// パラメータ値設定
abstract protected function setValues();
// 指定キーのパラメータを取得
public function get($key = null)
{
$ret = null;
if (null == $key) {
$ret = $this->_values;
} else {
if (true == $this->has($key)) {
$ret = $this->_values[$key];
}
}
return $ret;
}
// 指定のキーが存在するか確認
public function has($key)
{
if (false == array_key_exists($key, $this->_values)) {
return false;
}
return true;
}
}
?>
Post.php
POST変数を抽象化します。
require_once( "RequestVariables.php" );
// POST変数クラス
class Post extends RequestVariables
{
protected function setValues()
{
foreach ($_POST as $key => $value) {
$this->_values[$key] = $value;
}
}
}
?>
QueryString.php
GET変数を抽象化します。
require_once( "RequestVariables.php" );
// GET変数クラス
class QueryString extends RequestVariables
{
protected function setValues()
{
foreach ($_GET as $key => $value) {
$this->_values[$key] = $value;
}
}
}
?>