序言
基础
配置
架构
路由
控制器
控制器定义
前置后置方法
条件方法
模板
调试
安全
工具
部署
控制器定义

定义普通控制器
普通控制器是指该控制器与被访问的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

定义基类控制器
基类控制器不会因外部的访问而实例化,也就是说它不会被外界干扰。该控制器可以作为权限认证等其他相关逻辑而设立,使得代码利用率增高。基类控制器最好以"Lml"为前缀,这样更加方便查找。系统在加载控制器时先查找本组别是否存在该控制器,不存在则尝试加载最外部的控制器。如下代码示例:
<?php 
class LmlAuth extends LmlBase{
    public function 
index(){
        echo 
'hello LMLPHP';
    }
}
上面的例子定义了LmlAuth类继承了LmlBase类,可以在该类做权限校验,其他需要权限的控制器可以继承它。基类控制器的定义最好应继承LmlBase类,这样就可以使用系统自带的一些方法。
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.005400(s)
2024-04-20 11:21:33 1713583293