控制器定义
定义普通控制器
普通控制器是指该控制器与被访问的URL有对应关系的控制器。普通控制器定义通常需要继承系统的LmlBase类或者其子类,例如,下面定义了一个 ModuleIndex控制器类:
<?php
class ModuleIndex extends LmlBase{
public function index(){
echo 'hello LMLPHP';
}
}
需要注意的是:控制器的名称Module后面的第一个字符需要大写(第一个必须是字母,否则无法找到),控制器类名除去前缀的长度不能超过30个字符(LMLPHP为了匹配的效率和安全性,设置长度为30个字符),方法的名称不要与系统关键词冲突,例如不能是"list"。ModuleIndex控制器类的index方法是公有方法,访问下面的URL地址:
http://www.domain.com/index.php/index/index
输出内容为:
hello LMLPHP
控制器ModuleIndex是系统默认的控制器,index也是系统默认的方法。所以访问下面URL地址同样可以得到一样的输出。
http://www.domain.com/
http://www.domain.com/index.php
http://www.domain.com/index
http://www.domain.com/index/index
http://www.domain.com/index.php/index
http://www.domain.com/index.php/index/index
http://www.domain.com/index.php?path=/index/index
http://www.domain.com/?path=/index/index
http://www.domain.com/index.php?path=/index
http://www.domain.com/?path=/index
http://www.domain.com/index.php?m=index&a=index
http://www.domain.com/?m=index&a=index
http://www.domain.com/index.php?m=index
http://www.domain.com/?m=index
http://www.domain.com/index.php
http://www.domain.com/index
http://www.domain.com/index/index
http://www.domain.com/index.php/index
http://www.domain.com/index.php/index/index
http://www.domain.com/index.php?path=/index/index
http://www.domain.com/?path=/index/index
http://www.domain.com/index.php?path=/index
http://www.domain.com/?path=/index
http://www.domain.com/index.php?m=index&a=index
http://www.domain.com/?m=index&a=index
http://www.domain.com/index.php?m=index
http://www.domain.com/?m=index
定义基类控制器
基类控制器不会因外部的访问而实例化,也就是说它不会被外界干扰。该控制器可以作为权限认证等其他相关逻辑而设立,使得代码利用率增高。基类控制器最好以"Lml"为前缀,这样更加方便查找。系统在加载控制器时先查找本组别是否存在该控制器,不存在则尝试加载最外部的控制器。如下代码示例:
<?php
class LmlAuth extends LmlBase{
public function index(){
echo 'hello LMLPHP';
}
}
上面的例子定义了LmlAuth类继承了LmlBase类,可以在该类做权限校验,其他需要权限的控制器可以继承它。基类控制器的定义最好应继承LmlBase类,这样就可以使用系统自带的一些方法。