phpcms(1)phpcms V9 MVC模式 与 URL访问解析(转)

【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 <?php
 2 /**
 3  * 路由配置文件
 4  * 默认配置为default如下:
 5  * ‘default‘=>array(
 6  *     ‘m‘=>‘phpcms‘,
 7  *     ‘c‘=>‘index‘,
 8  *     ‘a‘=>‘init‘,
 9  *     ‘data‘=>array(
10  *         ‘POST‘=>array(
11  *             ‘catid‘=>1
12  *             ),
13  *         ‘GET‘=>array(
14  *             ‘contentid‘=>1
15  *             )
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 <?php
2     class test
3     {
4         public function show()
5         {
6             echo "I Love PHPCMS V9.";
7         }
8     }
9 ?>

注意: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】控制器

关于控制器类,可以参见文章《phpcms V9 添加模块

Good Good Study, Day Day Up.

顺序  选择  循环  总结

时间: 2024-10-13 13:15:16

phpcms(1)phpcms V9 MVC模式 与 URL访问解析(转)的相关文章

兄弟连新版ThinkPHP视频教程2.ThinkPHP 3.1.2 MVC模式和URL访问

## ThinkPHP 3 MVC模式和URL访问#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.什么是MVC                 //了解    M -Model 编写model类 对数据进行操作    V -View  编写html文件,页面呈现    C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点         //了解三.ThinkPHP的MVC对应的目录 

ThinkPHP 3 MVC模式和URL访问

一.什么是MVC                 //了解    M -Model 编写model类 对数据进行操作    V -View  编写html文件,页面呈现    C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点         //了解三.ThinkPHP的MVC对应的目录   //了解    M 项目目录/应用目录/Lib/Model    V 项目目录/应用目录/Tpl    C 项目目录/应用目录/Lib/Ac

ThinkPHP第二课 框架MVC目录和URL访问方式

第二课 框架MVC目录和URL访问方式 1.说明: ThinkPHP是基于MVC的框架,认识框架目录将更好的实现分层,掌握ThinkPHP.URL访问就是访问框架的控制器(MVC中的C),共有四种方式,框架中的C起到分模块的作用. url的4种访问方式: 1.PATHINFO 模式 -- 重点!!!!!! http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 2.普通模式 http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

phpcms V9 前台首页模板文件的解析

在了解了<phpcms V9 URL访问解析>之后,我们已经知道首页最终执行的是content模块下index控制器的init方法. 下面, 我们逐步分析过程如下: 第一.首页默认执行的是index.php?m=content&c=index&a=init 第二.获取SEO信息:phpcms/libs/functions/global.func.php 第三.模板调用:phpcms/libs/functions/global.func.php 第四.模板解析:phpcms/li

ThinkPHP中URL访问模式详解

一.ThinkPHP中支持的四种URL访问模式                                                   所谓URL访问模式,指的是以哪种形式的URL地址访问网站. URL访问模式的意义在于:可以让网站中的所有链接有一个统一的格式. URL访问模式 URL模式 URL_MODEL设置 示例 普通模式 0 http://localhost/?m=home&c=user&a=login&var=value PATHINFO模式 1 http:/

MVC模式

模式1把业务代码从JSP页面中分离了出去,减少了JSP的Java代码量,但在JSP页面中还有一些处理控制的Java代码.如果项目规模大,业务复杂,可能JSP中的处理控制的Java代码就会很杂乱.为了解决这个问题,可以把Servlet和 JSP结合起来,用Servlet接收用户提交的请求,调用业务方法,再转发给JSP页面显示结果 .以上所说的结构称为模式2. 模式2是一种MVC模式.MVC模式分为3层:业务层(Model)是进行业务处理的,表示层(View)是用来与用户交互的,控制层(Contro

IOS设计模式之一(MVC模式,单例模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么翻译错误,请与我联系谢谢. iOS 设计模式-你可能已经听说过这个词,但是你真正理解它意味着什么吗?虽然大多数的开发者可能都会认为设计模式是非常重要的,然而关于设计模式这一主题的文章却不多,并且有时候我们开发者在写代码的时候也不会太关注它. 在软件设计领域,设计模式是对通用问题

【IOS 开发】IOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

JDBC - 开发实例 - MVC模式

JDBC - 开发实例 - MVC模式  1. 在web.xml中配置连接数据库的信息 web.xml: <context-param> <param-name>server</param-name> //主机名 <param-value>localhost</param-value> </context-param> <context-param> <param-name>db</param-name&