谁一开始就是大神?

你们操作数据库的层是怎么写的,我不确我的写法有没有问题,特来请教大家[2.0]

我看有很项目中在完成一些数据库操作时用的是静态方法完成的。

就是说在ActiveRecord的子类里增加一个静态方法,然后再Controller里直接用 Class::function形式调取。

举个例子:

比如有个User类,对应数据库中User表,

Class User extends ActiveRecord
{
    public static function addUser($username.$password)
    {
         //写一些sql插入这条记录
    }
}

然后再Controller里直接用

User::addUser($username.$password)

这样的方式调用可以么?有不安全的地方么?因为我了解到的,静态方法是属于类的,如果两个请求同时调了这个方法,会冲突么?虽然我写了些测试代码,没有发生冲突的情况,但是我还是不放心,因为之前写别的的时候都是new 一个普通对象,然后调对象方法实现的,还没这么用过,不怎么放心。

另外就是 还有没其他的问题。

大家平时都怎么用的呢?

应该是两个参数吧:
个人觉得,不是说不能这么做,而是可以直接使用yii提供的增删改操作
使用原生sql语句:
要多看看文档:http://www.yiichina.com/doc/guide/2.0/db-active-record
框架这个东西,应该灵活应用,不是说就不能一定怎么做,一定就要那么做,没有这个硬性要求。
函数式写法,不建议学习
应该保持OO的写法,static fun意义不大,更多的我们会用这个思维来做一些tools
如果调用频繁可以考虑
$user = new User();
$user->createNew($user, $pass); //do pass encode and blabla in class instant.
我想你去理解下什么是MVC,这是一种思想,
数据打交道的教给M。C是控制逻辑,本来M要做的事,你给C做,虽然结果可行。但是脱离了MVC的思想

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 你们操作数据库的层是怎么写的,我不确我的写法有没有问题,特来请教大家[2.0]

评论 抢沙发

登录

找回密码

注册