*

[RaptorsFramework][PHP]リクエストをオブジェクト化する

公開日: : 最終更新日:2024/01/18 RaptorPHPFramework

RaptorFrameworkだけどネーミングに既に先客がいた。
どうしてもラプターって言う単語だけは使いたいので何とかならないかってことでRaptorをRaptor”s”と複数形にすることで対応した。
向こうもドマイナー中のドマイナーなFWだしね。こんなこと言ったら怒られるけど。

ってことでこのWPカテゴリ名も変更した。

本題だけど今回はリクエストをオブジェクト化することを目指す。
単純にリクエストを取るだけなら

$_GET["取りたいキー列"]

で取得できるが、PHPファイルを共用していたら、そのリクエスト内にそのキー列が無かったらエラーを吐いてしまう。

例えば、フォームで新規追加と編集を兼ねたPHPファイルがあったとする。


<input name="username" type="text" value="<?php echo $_GET["hoge"]; ?>"/>

って言うテキストボックスがあったとする。
編集画面ならリクエストヘッダ内にキーhogeのデータを入れておけばvalue内には自動的にそのhogeデータを出力してくれるので問題はない。
ところが新規追加の場合テキストボックス内のvalue値に入るリクエストデータはないことの方が多い。

その場合、エラーが返ってきてテキストボックス内にエラー文が出力されてユーザー側は入力どころではなくなる。


if(isset($_GET["hoge"]){echo $_GET["hoge"];})

なんて条件分岐式を書くなんて泥臭いやり方はしたくないし、ソースコードが冗長になって後から編集するのも面倒だ。

ってことで、GET、POST、Cookieデータを一括して配列に纏め、その中に求めるデータがあるかどうか判別していく事にする。

ってことで書いたスクリプトがこれ。


class reqest {
 var $object = array();
 function reqestObject() {
  $_REQUEST = array_merge($_GET, $_POST, $_COOKIE);
  $object = $_REQUEST;
  return $object;
 }

}

一括して$object配列内にリクエストヘッダーをぶち込んでしまう。
配列内に入れたデータはクラス化してあるのでいつでも取り出すことができる。

ただ、配列のデータなので、これだと当初の目的が達成できない。
という事でこのクラス内でもう一つFunctionを追加する。


function get($namekey = null){

 $object = $this->reqestObject();

 if(isset($object[$namekey])){
 return $object[$namekey];</pre>
<pre> }
} 

このget関数に対して求めるリクエストのキー列を投げて、そのリクエストデータが有ったらそれを文字列として返す。
使い方としては


<?php echo $request->get("hoge"); ?>

仮にhogeというデータが有ったらそれを出力してくれる。
仮にリクエスト内にhogeというデータが無かったとしても空欄(というよりはnullと言った方が良いか)が返ってくるのでエラーが出てくることもない。

これで心置きなくリクエストデータを扱えるわけだ。

リクエストデータは全て取得するので、

(URL)/index.php?hoge=test

というクエリストリングが有ったら、


<?php echo $request->get("hoge"); ?>

と書けばしっかり[test]と出力してくれる。
リクエストの扱いはこの形でオブジェクト化して使う。

そろそろデータベースへのインサートをやりたいね。

関連記事

フレームワークを作ってみる。

このブログ。元々PHPの学習状況を報告する為の場所だったんだが、いつの間にか遊びの報告しかしてない事

記事を読む

[PHP]西暦→世紀変換する

(遊戯王真DM2本編より転用+一部改変) 先日偶然家にいた姉と真DM4をやっていた。舞台設

記事を読む

no image

[php]どの数値の倍数かどうかを判定する

俺はPHPでクラス関数を開発した人の事は全力で称えたい PHPでどの数値の倍数かどうかを判定す

記事を読む

[RaptorsFramework][PHP]DB接続

前回に引き続きRaptorFrameworkの作業を続ける。 Coreファイルをゴリゴリ追加し

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

エクシーズ×リンクフェスティバルレポ

報酬を全部集めたわけではないが、とりあえずミッション分は完走

閃刀入門

チラ裏に近い記事は書かない・書いていても公開しないつもりだっ

MD魔術師S23レポ

前回の記事を書いた時からデビューしたマスターデュエル。ただ、

マスターデュエルにてやっとプラチナに上がれた話

ネットの友人にモチベを掛けられてマスターデュエル参入。リンク

太陽の帝国、大鷲の群れに挑まんとす(ゲームジャーナル39号 真珠湾強襲リプレイpart:1)

初め半年や1年の間は随分暴れてご覧に入れる。然しながら、2年3年と

→もっと見る

PAGE TOP ↑