某某php框架是运行在php CGI模式下的网页项目开发框架,采用流行的php面向对象开发,mvc三个核心类架构的单入口开发框架。
在mvc架构中,controller控制器的角色是负责请求路径的转换,调用对应的控制器实例化为对象后,激活其中的指定方法响应用户请求的。
所以我们大多数的开发代码都是在编写控制器类的方法内容。需要理解的是,当用户通过浏览器访问一个路径时,实际上就是根据路径找到对应的控制器方法实例化为对象的过程。实例化的具体代码是写在框架核心的,由核心根据请求路径针对性的实例化对应控制器类和调用对象中的方法而已。所以原理上,一个超链接请求只能请求一个控制器方法,当然根据业务需要该方法可以内部调用更多的其他方法等等。
也就是说,我们在开发代码时,使用$this关键字调取的任意方法,都是在未实例化之前的控制器核心类中的方法。而控制类被实例化是根据用户发起请求的超链接针对性实例化控制器类读取对象当中特定方法实现业务逻辑的。
所以,在开发代码过程中,一个方**否能被超链接请求读取得到,关键点就是上面的理解,如果理解了一个超链接就是一个实例化控制器方法的操作,那么如果该方法需要被用户访问到,则必然是public修饰符的公开放方法,而private protected修饰符的方法,是实例化对象无法直接读取的。只能在未实例化的代码编写中,使用$this关键字内部调用而已。
充分理解了其中原理,开发者可以很好的规划自己哪些控制器方法提供超链接访问,哪些方法只能其他控制器方法内部调用,哪些方法只能本类控制器调用了。
在mvc架构中,model模型类的角色是与数据库业务相关的核心类。其只能在控制器中被开发者直接实例化使用。比如 $db = M();为本框架最简单直接的实例化一个核心模型类的方式。
但要理解到:模型类是框架核心提供的,主要目的就是在规范开发者编写sql语句。以及防止sql注入等主要目的。所以如果只是简单的CURD操作,推荐直接实例化核心模型类即可。不需要自己编写自定义模型类。
而如果需要复杂的关联查询,以及入库前的表单验证等等,可以自定义一个模型类,继承于核心模型类即可。
也就是自定义模型类的编写是可选的。不推荐开发者直接编写原生sql语句读取数据库资源。原因已经在php工作模式章节中讲解,大多数项目的瓶颈不在nginx和php,而是在不规范的sql语句,以及不合理的数据库索引导致的。
在mvc架构中,view视图类:实际上当前主流前后端分离的项目,例如采用vue+php的项目,mimiphp框架的左右主要是提供json格式的字符串数据给前端vue自行渲染。所以view视图类几乎用不到了。但传统网页开发当中,view视图类的目的就是为了前后端分离而做的规划。只不过分离不够彻底。编写前端页面的开发者不需要掌握php相关知识,只需要熟悉简单的模板语法就可以开发漂亮的网页页面效果。
但要充分理解的是,js代码是运行在浏览器客户端的。对于php服务器来说,任何js,html,css代码都只是普通字符串而已。也就是模板当中的模板语**被php解析以外,其他例如js变量等,都不是在服务器执行的。需要浏览器加载完成整个页面数据后,由浏览器中的js引擎才能正确解析js当中的变量信息。
还需要理解一点就是:json字符串是任意逻辑语言都能正常解析的特殊格式字符串,也就是php同样可以格式化json字符串为php数组和php对象,js也同样可以格式化json字符串为js对象.
但不区分语言通用的是json字符串,而格式化后的各种语言的json对象却是不通用的。所以要发送一个json数据给其他语言,只能是json字符串,而不是特定语言的json 对象。
json的出现,简化了api对接当中数据字符串格式化过程,比如xml同样也是多语言支持格式化的数据格式,但却没有json字符串简便。所以推荐以后API对接当中采用json字符串方式对接。
热议
2楼 AD盖 1小时前
好多字,不看,不看
3楼 optimism 1小时前
挺好 顶一下
4楼 TinyTiny 1小时前
绑定
5楼 电脑 半小时前
说的好!
字多不看
6楼 mhsl 半小时前
7楼 sdqu 半小时前
php的话,你用上thinkphp几天,这些就无师自通了
8楼 minlearnhbs 13分钟前
mvc工作原理就一句话:把dom元素当传统桌面widges处理,统统组件化和CS化,利用API通讯。这底下是设计原理。
哪有这么多话。
9楼 kaleok 3分钟前
mvc工作原理就一句话:把dom元素当传统桌面widges处理,统统组件化和CS化,利用API通讯。这底下是设计原理 ...
我在给自己编写的php框架写基础原理,顺便普及一下给大家。
你弄了个什么东西?还dom元素。。。服务器上的语言能理解什么是dom么?
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
