Модели
Все аналогично сказанному про хуки контроллеров, за небольшим исключением.
Чтобы сделать метод модели подвластным системе хуков, необходимо добавить перед его именем "_".
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,...]){
...
}
// ------------------------------------------------------------------------