#php #codeigniter #authentication #ion-auth
#php #codeigniter #аутентификация #ion-auth
Вопрос:
public function groups()
{
$this->trigger_events('groups');
// run each where that was passed
if (isset($this->_ion_where) amp;amp; !empty($this->_ion_where))
{
foreach ($this->_ion_where as $where)
{
$this->db->where($where);
}
$this->_ion_where = array();
}
if (isset($this->_ion_limit) amp;amp; isset($this->_ion_offset))
{
$this->db->limit($this->_ion_limit, $this->_ion_offset);
$this->_ion_limit = NULL;
$this->_ion_offset = NULL;
}
else if (isset($this->_ion_limit))
{
$this->db->limit($this->_ion_limit);
$this->_ion_limit = NULL;
}
// set the order
if (isset($this->_ion_order_by) amp;amp; isset($this->_ion_order))
{
$this->db->order_by($this->_ion_order_by, $this->_ion_order);
}
$this->response = $this->db->get($this->tables['groups']);
return $this;
}
Мне кажется бессмысленным, как вы можете видеть из функции groups() выше, зачем использовать пользовательские _ion_limit, _ion_offset, _ion_where, когда CI уже предоставил вам выбор написать собственный where()->limit()-> get(), сохранить свой собственный _ion_limit, _ion_offset, _ion_whereчастная собственность приносит что-нибудь хорошее для рабочего процесса? Я пропустил здесь какую-то часть или здесь задействован какой-то шаблон проектирования?
Ответ №1:
Мне кажется, основная причина заключается в реализации функциональности перехвата событий. Все «дублирующие» функции БД выполняют вызов $this->trigger_events()
, который, в свою очередь, вызывает любую функцию, предоставленную set_hook()
.
У меня есть очень смутное воспоминание о том, что я замечал какую-то другую достойную причину. Но это было довольно давно, и я не могу вспомнить, что это было.
Комментарии:
1. Может быть, это правда, кажется, что будет более гибко сфабриковать предложение sql