これについてはっきりさせておきたい。私はcodeigniterを使用しています。
Webアプリケーションを構築する際のcodeigniterでのOOP設計のより良い/適切な/標準/最も評価されている方法は何/どれですか?
一般的、
I. Userのようなカスタムクラスを作成し、ログイン機能を持っていますか?好き、
class User{
var $db, $id, $username, $password, $role; //have all user attributes here
function __construct() {
//instance for accessing the database
$this->db =& get_instance();
}
public function login(){
//do the login here
$this->db->load->model('user_model');
$success = $this->db->user_model->login($this->username, $this->password);
//isn't this redundant using models? or should I rename the model function name like checkLogin?
return $success;
}
//other class functions
}
また
II。ユーザーオブジェクトを作成せずに、コントローラーからモデルのログイン関数を直接呼び出しますか?
O_o
スキーム1では、データベースでのみクエリを実行するモデルを作成しています。また、「Client」、「Admin」のように「User」オブジェクトを継承させ、オブジェクトごとに特定の機能を追加することもできます。CIコントローラーをレイアウトとビューへの変数の受け渡しに集中させるという利点があります。これは主にその目的であり(よくわかりません)、カスタムクラス/オブジェクトがWebアプリの操作に取り組むことができます。 しかし、モデル内の別のログイン関数を呼び出したログイン関数に冗長性を感じます。これはいいですか?
スキーム2では、ログイン、登録、ログの作成などのすべての操作をコントローラーに処理させ、入力投稿を受信して変数をビューに渡すのは適切ですか?
本当にガイドが必要です。私のOOスキルは成長する必要があります。
どうもありがとう!