控制器是一个类文件,是以一种能够和URI关联在一起的方式来命名的。如:example.com/index.php/blog/中CI将尝试寻找并装载一个名为blog.php的控制器。当控制器的名字匹配URI的第一段时,它将被装载。
新建一个简单的控制器放在application/controllers/blog.php,代码如下
class Blog extends CI_Controller{
function __construct(){
parent::__construct();
}
public function index(){
echo 'Hello World!';
}
}
然后通过example/index.php/blog来访问。
如果URI的第二部分为空的话,会默认载入”index”方法。也可以通过example.com/index.php/blog/index/的方式来访问。
URI的第二部分是用来决定调用控制器中哪个方法的。如在index()方法后再加一方法:
public function comments(){
echo 'Whatever';
}
访问example.com/index.php/blog/index/则显示信息:Whatever
如果URI超过两部分,超出的部分将会作为参数传递给方法。
当网站不存在或某个URI或用户从根目录访问时CI会加载,默认控制器。打开application/config/routers.php来配置默认控制器:$router[‘default_controller’]=’Blog’;
私有方法需要在方法名前加”_”,如:private function _utility(){}
可以将控制器放在application/controllers的子文件下,并在application/config/routers.php中指定默认控制器。
如果要在任意控制器中使用构造函数的话,必须加入代码:
parent:__construct();