博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
phpcms V9 MVC模式 与 URL访问解析
阅读量:6075 次
发布时间:2019-06-20

本文共 1836 字,大约阅读时间需要 6 分钟。

【1】URL访问解析

观察访问网页时的网址,可以得出模块访问方法,如下示例:

http://www.abcd.com.cn/phpcms/index.php?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传递参数形式相同  

那么,问题来了!我们经常访问首页的网址为:http://www.abcd.com.cn/phpcms/index.php 为什么没有m和c的值呢?

  这里解释一下,系统在没有指定模块和控制器的时候,会执行默认的模块和操作。如上的网址,PHPCMS默认路由会定位到content模块的index控制器中的init操作。因此与下面的URL结果是相同的:

http://www.abcd.com.cn/phpcms/index.php?m=content&c=index&a=init

系统还支持URL路由的功能,这些都能够带来其他的url访问效果。

其路由文件位于 phpcms\caches\configs\route.php 内容整理如下所示:

1 
array( 6 * 'm'=>'phpcms', 7 * 'c'=>'index', 8 * 'a'=>'init', 9 * 'data'=>array(10 * 'POST'=>array(11 * 'catid'=>112 * ),13 * 'GET'=>array(14 * 'contentid'=>115 * )16 * )17 * )18 * 其中“m”为模型,“c”为控制器,“a”为事件,“data”为其他附加参数。19 * data为一个二维数组,可设置POST和GET的默认参数。20 * POST和GET分别对应PHP中的$_POST和$_GET两个超全局变量。21 * 在程序中你可以使用$_POST['catid']来得到data下面POST中的数组的值。22 * data中的所设置的参数等级比较低。如果外部程序有提交相同的名字的变量,将会覆盖配置文件中所设置的值。23 * 如:外部程序POST了一个变量catid=2那么你在程序中使用$_POST取到的值是2,而不是配置文件中所设置的1。24 */25 return array(26 'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),27 );

为了更具体的理解,简单实例如下:

1. 在phpcms/modules目录下,新建一个文件夹,命名为demo,即模块名为demo

2. 在demo文件夹中,新建一个文本文件,命名为test,修改文件类型为php。用Notepad++打开test文件,编辑内容如下:

1 

注意:test.php里面的内容,必须要用class类的写法,否则会提示control找不到,即mvc中的c找不到。如果没有指定a,则调用init方法,如果没有实现init方法,则会显示:Action does not exist。

3. 在浏览器的网址栏输入:http://localhost/phpcms/index.php?m=demo&c=test&a=show 回车 结果如下图:

【2】模块

  phpcms V9框架中的模块,位于phpcms/modules目录中,每一个目录称为一个模块。即上文URL访问中的m。

如果需要创建一个模块,只要在phpcms/modules目录下创建文件夹并放入你的控制器类就可以了。

【3】控制器

  关于控制器类,可以参见文章《》

Good Good Study, Day Day Up.

顺序  选择  循环  总结

转载地址:http://edxgx.baihongyu.com/

你可能感兴趣的文章
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
oracle 使用plsql 创建表空间,用户以及分配权限
查看>>
如何手动释放linux内存
查看>>
Cacti中文版的基本安装及配置
查看>>
apt-get介绍
查看>>
DockerFile实战(二):DockerFile编写要求与基本风格
查看>>
在LAMP环境下搭建Discuz论坛网站
查看>>
ActiveMQ点对点模式的浅谈
查看>>
ava基础第十一天
查看>>
scrapy采集列表页的另一种方式
查看>>
SpringMVC源码解析(五)——视图处理
查看>>
调用对象 “ha-datastoresystem”的“HostDatastoreSystem.QueryVmfsDatastoreCreateOptions” 失败。...
查看>>
Android提高二十一篇
查看>>
大家好博客开通了好高兴哦
查看>>
我的友情链接
查看>>
centos7 中firewalld防火墙不得不说的一些事
查看>>
我的友情链接
查看>>
Java自动加载程序目录下的jar包
查看>>