繁体   English   中英

在Kohana中扩展模板控制器

[英]Extending the Template Controller in Kohana

在为项目追溯创建新的基本控制器时,我有些困惑。 如果我没记错的话,我要做的就是在application/libraries创建一个名为MY_baseController.php的文件,其中包含以下内容:

class baseController extends Template_Controller
{
  public function __construct()
  {
    parent::__construct();
  }
}

然后重写我的其他控制器以扩展baseController而不是Template_Controller

class Frontpage_Controller extends Template_Controller

class Frontpage_Controller extends baseController

但是,当我这样做时,访问Frontpage_Controller提醒我:

找不到类“ baseController” ...

我在这里想念什么?

经过一番摆弄之后,我认为以下是我的解决方案...

MY_baseController.phpapplication/libraries移至application/controllers 将其重命名为base.php并更改以下行:

class baseController extends Template_Controller

class Base_Controller extends Template_Controller

现在在Frontpage Controller中,扩展Base_Controller而不是baseController

确保遵守Kohana约定,以确保所有内容都能正确自动加载! 关于模型帮助器和库也有类似的内容。

另外,如果您想保持主应用程序控制器文件夹的清洁,我建议您为应用程序制作一个Kohana模块,然后将所有模板和杂项扩展控制器放在此处,以使其与主控制器分离。

只是不要忘记将模块添加到您的配置文件中!

我知道这是一个古老的问题,但是我想说一句话。 您只需要从文件名中删除MY_前缀即可,因为只有在扩展系统文件夹中带有_Core后缀的类时才真正需要它。 例如,用于

class Controller extends Controller_Core

将被命名为MY_Controller.php。

在这种情况下,只需命名文件baseController.php并将其放置在librarys文件夹中即可。

没有冒犯,但我必须在计算机上动脑子才能使其与Kohana 3.1一起使用。 我终于发现扩展模板控制器的语法应为:

class Controller_Base extends Controller_Template

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM