3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(PHP)MVCモデルを使ったPHPアプリケーション(リクエスト部分)

(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;

}

}

}

 

?>