これは以前に別の言葉で尋ねられたと思いますが、すでに同様の質問を検索したところ、次のことがわかりました。
ただし、主に C# 開発者であるため、言語に関する以前の知識を PHP などの他のツールと区別するのが難しい場合があります。私の哲学は、言語自体の事実上の標準に従うことです。
そうは言っても、私は Db4objects、DevExpress XPO、EntityFramework など、いくつかの ORM ツールを使用してきました。CodeIgniter の ActiveRecord 実装に対する .Net アプローチとは大きく異なると思うのは、モデルの使用方法です。たとえば、CI では、通常、モデル インスタンスをロードし、それをほぼ静的メソッドのように使用してすべての操作を実行し、次に配列または複数のパラメーターとして、ある種のデータをパラメーターとして渡します。
$this->load->model('User_model');
$this->User_model->save($username, $password);
または:
$this->load->model('User_model');
$this->User_model->save(array(
'user' => 'theuser',
'password' => 'thepassword'
));
したがって、すべての操作を実行するために同じインスタンスを使用することになりますが、特に別のオブジェクト指向言語から来ている場合は、混乱することがあります。私はよく次のようにしています。
$user = new User_model();
$user->username = 'theusername';
$user->password = 'thepassword';
$user->save();
ご覧のとおり、インスタンスでメソッドを呼び出して実際の作業を行います。save メソッドは次のようになります。
function save() {
$this->db->set('username', $this->username);
$this->db->set('username', md5($this->password));
$this->db->insert('User');
}
CIでこの種の操作を行うための推奨標準はありますか? 長所と短所があるに違いないことは知っていますが、CI ドキュメンテーションでこのトピックについて何も見ていません。
前もって感謝します!