1

如果我想在每次站点加载(在每个控制器中)时加载(运行)此代码,我必须将代码放在哪里?

谢谢!马丁。

4

2 回答 2

2

首先,构建主控制器,其他的扩展它们。两种方法非常有用:before() 和 after()。通过覆盖和链接它们(super::),您将能够做到这一点。

API 控制器

于 2013-04-29T08:46:35.540 回答
1

正如 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;
    }
}
于 2013-04-30T20:06:41.070 回答