[英]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.php
从application/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.