多合一活动记录get()方法或ORM(PHP活动记录)

时间:2011-02-06 20:26:59

标签: orm codeigniter activerecord

是一个通用的get()方法,就像一个好主意的方法

function universal_get( $select=NULL, $from=NULL, $where=NULL, $group=NULL, $having=NULL, $order=NULL, $limit=NULL )
{

    // condition checks
    if ( is_string( $select ) OR is_array ( $select ))      { $this->db->select( $select ); }
    if ( is_string( $from ) )                               { $this->db->from( $from ); }
    if ( is_array( $where ) )                               { $this->db->where( $where ); }
    if ( is_string( $group ) OR is_array( $group ) )        { $this->db->group_by( $group ); }
    if ( is_array( $having ) )                              { $this->db->having( $having ); }
    if ( is_array( $order ) )                               { $this->db->order_by( $order ); }
    if ( is_string( $limit ) OR is_int( $limit ) )          { $this->db->limit( $limit ); }

    $result = $this->db->get( $from );

    if ( $result->num_rows() > 0 )     { return $result->result(); }
    else                               { return FALSE; }
}

或者像PHP-ActiveRecord这样的ORM会是更好的选择吗?

由于

2 个答案:

答案 0 :(得分:2)

海峡前锋:没有

如果您是程序员,那么请编写好的代码。当我开始使用CI时,我在各处都制作了类似这样的功能,而且非常令人困惑。 CI是一个框架,所以基本上你是在构建一个框架框架。

要记住的另一件事是,您需要始终知道代码中发生了什么。具有过多功能会导致难以跟踪的错误并限制特定应用程序的可用性。例如,如果你想使用连接怎么办?所有设计合理的数据库最终都会使用连接。

答案 1 :(得分:-1)

我认为这不是一个好主意。 CI的Active Record会处理你不想处理的事情......添加斜线,链接到哪里以及其他一些......只需查看他们的课程。

http://codeigniter.com/user_guide/database/active_record.html