下記phpソースコードは、架空のWebシステムのログインユーザ登録+編集スクリプトを簡易化したもの。
よくモデルや拡張の使い方を知らんで結局ネイティブコーディングしている人がいますが、設計段階で準備していればこんなカンタンに済むんだよ的なイヤミソースです。
<?php class User extends Ex_Controller { function __construct() { parent::__construct(); $db = $this->StdDatabase(); $user_data = $this->session; $post_data = $this->input->post(); $err = (object) array(); } // Method public function __remap($method="index") { // Run validation $err->input = $this->Validator->user($post_data); // Validation error if (empty($err->input)===FALSE) { $this->view->error("Validation error.", $err->input,false); } // User actions switch ($method) { // regist user case "register": { if ($user_data->level > 2) { $col = $db->user->getColumn(); foreach ($col as $key=>$val) { $col->$key = $post_data->register->$key; } $set = $db->user->Regist($col,$err->regist); if (empty($err->regist)===FALSE) { $this->view->error("Database error.", $err->regist, false); } else { $this->view->user("regist", 1, true); } } else { $this->view->error("Permission error.", "You do not have a permission of regist user.", false); } break; } // edit + delete user case "edit": { if ($user_data->level > 3) { $col = $db->user->getColumn(); foreach ($col as $key=>$val) { $col->$key = $post_data->edit->$key; } $set = $db->user->Edit($col,$err->edit); if (empty($err->edit)===FALSE) { $this->view->error("Database error.", $err->edit,false); } else { $this->view->user("edit",$col->act, true); } } else { $this->view->error("Permission error.", "You do not have a permission of edit user.", false); } break; } // Default (return index) default: { $this->view->user("index", 1, true); } } } }
コメント