Регистрировать каждый вызов метода в Kohana? - PullRequest
0 голосов
/ 09 марта 2011

Как я могу регистрировать каждый вызов метода в контроллерах и моделях в моем приложении Kohana?

Я хотел бы очистить свои сценарии и удалить неиспользуемые методы.

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Вы можете использовать методы before() и after() для регистрации имени и действия вашего контроллера (используйте $this->request для получения этих значений).

Для моделей таких методов нет, но я не люблю использовать __call() для этой цели. Может быть, вы должны войти в свои модели в контроллерах? Как это:

// somewhere in controller 
$cid = $this->request->param('cat_id');
// call custom model method
$articles = ORM::factory('article')->get_by_category($cid);
// log model call
// etc
0 голосов
/ 09 марта 2011

Вы можете расширить Kohana_Controller и Kohana_Model следующим образом:

public function __call($name, $arguments)
{
    // Log call here

    // Now return the real method
    return parent::__call($name, $arguments)
}

__ call () довольно медленный, так что в конце концов вы захотите удалить их.

...