栏目分类
phpcms V9 MVC模式 与 URL访问解析
发布日期:2025-01-04 11:01 点击次数:176
【1】URL访问解析
观察访问网页时的网址,可以得出模块访问方法,如下示例:
?m=content&c=index&a=show&id=1
关于此URL解析如下:
m = content 为模块/模型名称 位于phpcms/modules/content (必须项)
c = index 为控制器名称 位于phpcms/modules/content/index.php (必须项)
a = show 为事件名称 位于phpcms/modules/content/index.php 中的show方法
id = 1 为其他参数 与正常get传递参数形式相同
那么,问题来了!我们经常访问首页的网址为: 为什么没有m和c的值呢?
这里解释一下,系统在没有指定模块和控制器的时候,会执行默认的模块和操作。如上的网址,PHPCMS默认路由会定位到content模块的index控制器中的init操作。因此与下面的URL结果是相同的:
?m=content&c=index&a=init
系统还支持URL路由的功能,这些都能够带来其他的url访问效果。
其路由文件位于 phpcms\caches\configs\route.php 内容整理如下所示:
为了更具体的理解,简单实例如下:
1. 在phpcms/modules目录下,新建一个文件夹,命名为demo,即模块名为demo
2. 在demo文件夹中,新建一个文本文件,命名为test,修改文件类型为php。用Notepad++打开test文件,编辑内容如下:
注意:test.php里面的内容,必须要用class类的写法,否则会提示control找不到,即mvc中的c找不到。如果没有指定a,则调用init方法,如果没有实现init方法,则会显示:Action does not exist。
3. 在浏览器的网址栏输入:?m=demo&c=test&a=show 回车 结果如下图:
【2】模块
phpcms V9框架中的模块,位于phpcms/modules目录中,每一个目录称为一个模块。即上文URL访问中的m。
如果需要创建一个模块,只要在phpcms/modules目录下创建文件夹并放入你的控制器类就可以了。
【3】控制器
关于控制器类,可以参见文章《phpcms V9 添加模块》
Good Good Study, Day Day Up.
顺序 选择 循环 总结
相关资讯