为什么扩展继承类可以这样写的?好像帮助文档的要求不...
代码:
<?phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');
#前台父控制器
class Home_Controller extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->switch_themes_on();
}
}
#后台父控制器
class Admin_Controller extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->switch_themes_off();
#权限验证
if (! $this->session->userdata('admin')){
redirect('admin/privilege/login');
}
}
}
两个疑问:
在文件夹core/下该类文件名是MY_Controller.php,
按照帮助文档要求:
命名约定
[*]文件名首字母必须大写,例如:Myclass.php
[*]类名定义首字母必须大写,例如:class Myclass
[*]类名和文件名必须一致
请问为什么可以在一个文件里面定义两个继承类,而且类名和文件名还不一致的?请高手指点
Controller核心类扩展只是简单的判断文件是否存在(file_exists)并加载(require_once),所以可以命名不一致,当然也可以在其中创建多个类。对于“类名和文件名必须一致”这样约定更大程度是为了命名规范,而类似通过load加载的类是要通过class_exists检查的,否则会报错。
扩展Controller核心类的这种特性很大程度上提高了灵活性。但类的命名还是要设计一下的,方便今后的管理和修改,我的做法是核心扩展类加“SYS_”或"APP_"前缀。 很明显,这是传智播客的教程 MY都可以设置 这个不是关键 关键是在core目录下面MY_model 不能像 MY_controller 一样里面进行定义2 个活着更多的model基类但是 MY_controller确实可以 不知道是为什么???? 教程地址有吗?是最新的 我也是新手 加个好友一起学习。互相研究着还好玩点把
页:
[1]