Kohana - запуск кода на каждой странице загрузки (каждый контроллер)
Где я должен разместить свой код, если я хочу загружать (запускать) этот код каждый раз при загрузке сайта (в каждом контроллере)?
Спасибо! Мартин.
2 ответа
Сначала строим главные контроллеры, остальные расширяют их. Два метода очень полезны: before() и after(). Переопределив и связав их (super::), вы сможете это сделать.
Как говорит nopnop77, вы можете создать базовый контроллер, который расширяет контроллер Kohana по умолчанию, а затем расширить этот базовый контроллер в вашем приложении. Например:
Создать файл базового контроллера application/classes/Controller/Base.php
:
<?php defined('SYSPATH') OR die('No Direct Script Access');
class Controller_Base extends Kohana_Controller
{
protected $session = NULL;
public function before()
{
parent::before();
// start the session
$this->session = Session::instance();
}
}
Тогда любые классы, которые расширяют базовый класс, имеют доступ к переменной / методам в базовом классе. Например: контроллер входа, например application/classes/Controller/Login.php
который расширяет базовый класс:
<?php defined('SYSPATH') OR die('No Direct Script Access');
class Controller_Login extends Controller_Base
{
public function action_index()
{
// you can access the session variable here
echo $this->session;
}
}