Многофункциональная активная запись get () или метод ORM (PHP-Active Record) - PullRequest
1 голос
/ 06 февраля 2011

Универсальный метод 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; }
}

или ORM, такой как PHP-ActiveRecord, будет лучшим вариантом?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Пролив вперед: нет

Если вы программист, напишите хороший код.Когда я начинал с CI, я делал такие функции повсюду, и это очень сбивало с толку.CI - это фреймворк, поэтому в основном вы создаете фреймворк из фреймворка.

Еще одна вещь, о которой нужно помнить, это то, что вы всегда должны знать, что происходит в коде.Наличие функций, которые делают слишком много, вызывает ошибки, которые трудно отследить и ограничивают удобство использования для конкретных приложений.Например, что если вы хотите использовать соединение?В конечном итоге все правильно спроектированные базы данных будут использовать соединение.

0 голосов
/ 07 февраля 2011

Не думаю, что это хорошая идея. Active Record CI заботится о вещах, с которыми вы не хотите иметь дело ... Добавьте косые черты, цепочки, где и некоторые другие ... просто проверьте их класс.

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

...