Kohana - запуск кода на каждой странице загрузки (каждый контроллер)

Где я должен разместить свой код, если я хочу загружать (запускать) этот код каждый раз при загрузке сайта (в каждом контроллере)?

Спасибо! Мартин.

2 ответа

Сначала строим главные контроллеры, остальные расширяют их. Два метода очень полезны: before() и after(). Переопределив и связав их (super::), вы сможете это сделать.

Api Controller

Как говорит 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;
    }
}
Другие вопросы по тегам