找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 23|回复: 2

mvc工作原理

[复制链接]

80

主题

107

回帖

786

积分

高级会员

积分
786
发表于 2021-11-2 14:39:20 | 显示全部楼层 |阅读模式
本帖最后由 kaleok 于 2021-11-2 14:50 编辑

某某php框架是运行在php CGI模式下的网页项目开发框架,采用流行的php面向对象开发,mvc三个核心类架构的单入口开发框架。

在mvc架构中,controller控制器的角色是负责请求路径的转换,调用对应的控制器实例化为对象后,激活其中的指定方法响应用户请求的。

所以我们大多数的开发代码都是在编写控制器类的方法内容。需要理解的是,当用户通过浏览器访问一个路径时,实际上就是根据路径找到对应的控制器方法实例化为对象的过程。实例化的具体代码是写在框架核心的,由核心根据请求路径针对性的实例化对应控制器类和调用对象中的方法而已。所以原理上,一个超链接请求只能请求一个控制器方法,当然根据业务需要该方法可以内部调用更多的其他方法等等。

也就是说,我们在开发代码时,使用$this关键字调取的任意方法,都是在未实例化之前的控制器核心类中的方法。而控制类被实例化是根据用户发起请求的超链接针对性实例化控制器类读取对象当中特定方法实现业务逻辑的。

所以,在开发代码过程中,一个方**否能被超链接请求读取得到,关键点就是上面的理解,如果理解了一个超链接就是一个实例化控制器方法的操作,那么如果该方法需要被用户访问到,则必然是public修饰符的公开放方法,而private protected修饰符的方法,是实例化对象无法直接读取的。只能在未实例化的代码编写中,使用$this关键字内部调用而已。

充分理解了其中原理,开发者可以很好的规划自己哪些控制器方法提供超链接访问,哪些方法只能其他控制器方法内部调用,哪些方法只能本类控制器调用了。
回复

使用道具 举报

52

主题

438

回帖

1634

积分

金牌会员

积分
1634
发表于 2021-11-2 14:40:38 | 显示全部楼层
好多字,不看,不看
回复

使用道具 举报

32

主题

1万

回帖

2万

积分

论坛元老

积分
23230
发表于 2021-11-2 14:43:36 | 显示全部楼层
绑定
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|HS2V主机综合交流论坛

GMT+8, 2024-6-10 00:45 , Processed in 0.050493 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表