[Laravel 6.x]Route::get()で設定したURLパラメーターの取得
Laravel6.xでRoute::get('/path/to/{id}')で設定したidの取得方法について。
HOME>WEBプログラム覚書>PHP シリアライズ/アンシリアライズ
オブジェクトをまるごとDBやテキストに書き込める形式にしてくれるシリアライズ。オブジェクトが保持しているすべての変数が対象。
メソッドは保存されないがクラス名が保存されるのでアンシリアライズ時に紐付けされる??
詳しくはわからないがとりあえずシリアル化するクラスをアンシリアライズするページに読み込んでおけばメソッドの利用も可能になる。
/**
* シリアル化するオブジェクトのクラス
* = アンシリアライズに必要なクラス
*/
class MyItem
{
var $item;
var $price;
var $lot;
var $flag;
function MyItem($item, $price, $lot)
{
$this->item = $item;
$this->price = $price;
if (Validator::lotCheker($lot)) {
$this->lot = $lot;
$this->flag = true;
} else {
$this->flag = false;
}
}
function getItemName()
{
return $this->item;
}
function getItemPrice()
{
return $this->price;
}
function getItemLot()
{
return $this->lot;
}
}
// オブジェクトをシリアライズ
class ItemSerialize
{
var $s_item;
function ItemSerialize($obj)
{
if (is_object($obj)) {
$this->s_item = serialize($obj);
}
}
// シリアライズしたデータをどっかに書き込む
function put()
{
// サブクラスで実装
}
}
// 表示用 詳細はサブクラスで実装
class View
{
var $obj;
// アンシリアライズ
function View($s_item)
{
$this->obj = unserialize($s_item);
}
// 表示
function viewItem()
{
/* サブクラスで実装 */
$this->viewItemName();
$this->viewItemPrice();
$this->viewItemLot();
echo '合計金額は' . $this->total() . '円';
}
// 合計金額 = 料金 * 個数
function total()
{
$total = $this->obj->price * $this->obj->lot;
return $total;
}
}
class ViewEcho extends View
{
function viewEcho($s_item)
{
parent::View($s_item);
}
function viewItemName()
{
echo '商品名 : ' . $this->obj->getItemName() . '<br />';
}
function viewItemPrice()
{
echo '価格 : ' . $this->obj->getItemPrice() . '円<br />';
}
function viewItemLot()
{
echo '数量 : ' . $this->obj->getItemLot() . '個<br />';
}
}
// バリデート
class Validator
{
function lotCheker($lot)
{
if (is_numeric($lot)) {
if (0 < $lot && $lot < 100) {
return true;
}
return false;
}
return false;
}
}
// サニタイズ用
class Sanitize
{
// 略
}
/**
* ここからクライアントのコード
*/
$item = new MyItem('醤油ラーメン', 850, 5);
if ($item->flag) {
// シリアライズ
$s = new ItemSerialize($item);
var_dump($s->s_item); // どんな感じか確認
echo '<hr />';
// 元に戻せれば成功
$view = new viewEcho($s->s_item);
$view->viewItem();
}
投稿日 | 2008年2月 7日 02:34 |
---|---|
カテゴリ | PHP |
タグ | テストコード | 動作確認 |
トラックバック URL | http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1142 |
コメント