CI的控制器默认继承自CI_Controller,如果要扩展控制器,需要定义一个从CI_Controller派生的控制器,所有的自定义控制器都继承这个新控制器。
在application/core目录下,有与system目录下类似的目录结构,比如core、helpers、language、libraries目录,扩展控制器就是在application/core目录下自定义控制器,该控制器类从CI_Controller继承,类似的,如果要扩展系统的功能,就在application下的对应目录新增自定义类,从系统类继承。
<?php class My_Controller extends CI_Controller { function __construct() { parent::__construct(); echo "自定义控制器"; // 权限验证... // 登录验证... } } ?>
之后,将所有添加的控制器都从MY_Controller派生,通过在MY_Controller中重写父类方法来实现扩展控制器。
在application/config/config.php文件中,有这样一个配置项
$config[‘subclass_prefix‘] = ‘MY_‘;
CI在查找扩展类,会根据这里的前缀去查找并包含定义类文件,此处前缀不区分大小写
时间: 2024-10-23 00:41:34