我相信以前曾用不同的词语提出这个问题,我已经对类似的问题进行了搜索并找到了:
然而,作为一名C#开发人员,我有时会发现很难将以前的语言知识与其他工具(例如PHP)分开。我的理念是遵循语言本身的事实标准。
话虽这么说,我已经使用了几个ORM工具,如Db4objects,DevExpress XPO,EntityFramework等等。我发现与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文档中没有看到关于这个主题的任何内容。
提前致谢!