Powered by CodeIgniter

Модели

Все аналогично сказанному про хуки контроллеров, за небольшим исключением.
Чтобы сделать метод модели подвластным системе хуков, необходимо добавить перед его именем "_".
class User extends Model{ ... /** * С данным методом хуки работать не будут. * * return void */ function login(){ ... } // ------------------------------------------------------------------------ /** * А вот с этим будут. Нижнее подчеркивание перед названием метода * только лишь обозначает его для системы хуков. Вызываться метод должен * по-прежнему $user->login(). * * return void */ function _login(){ ... } // ------------------------------------------------------------------------
Нижнее подчеркивание перед названием метода только лишь обозначает его для системы хуков. Вызываться метод должен по-прежнему (например, $user->login()).
Поскольку названия моделей в системе не повторяются, то вызов хука выглядит следующим образом.
Внимание! Функция хука модели отличается знаком "_" после ее названия.

/** * Хук компонента mail модели User для метода login. * Компонент в данном случае не важен, т.к. модели имеют уникальные имена. * * @param object $User Объект модели. * @param int $id Первый аргумент обрабатываемого метода. * ... * @return void */ function mail_user_login_($User,$id[,$param,...]){ ... } // ------------------------------------------------------------------------ /** * Хук компонента mail модели User для метода login. * Компонент в данном случае не важен, т.к. модели имеют уникальные имена. * Изменяет параметр адресуемого метода. * * @param object $User Объект модели. * @param int $id Первый аргумент обрабатываемого метода. * ..... * @return void */ function mail_user_login_($User,&$id[,$param,...]){ ... return func_get_args(); } // ------------------------------------------------------------------------ /** * Хук компонента mail модели User для метода login. * Компонент в данном случае не важен, т.к. модели имеют уникальные имена. * Выполняется после адресуемого метода, поскольку имеет суффикс "_after". * * @param object $User Объект модели. * @param mixed $result Результат выполнения адресуемого метода. * @param int $id Первый аргумент обрабатываемого метода. * ... * @return void */ function mail_user_login_after_($User,$result,$id[,$param,...]){ ... } // ------------------------------------------------------------------------