本帖最后由 kaleok 于 2021-11-2 18:11 编辑
某某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字符串方式对接。 写前端原生基础,大前端的来喷,现在写后端工作原理,大前端的人又来喷。你们大前端跟女权男权一样,有意义吗?就喜欢无脑喷?大前端的赶紧滚 居然被个能写出全称SSR单词词组的人嘲笑初级了。。。。能不能好好说话?后端不是只有你node的,可懂?我在说PHP你来跟我扯dom,到底谁是小丑啊。 我不太想回复你的,多看看我的历史贴吧。很多技术大神就是被你们这种小丑折腾得隐退了。不过我只是喜欢反驳的那个,想让我破防走人?不存在的,心态好得很。 关键你第一句,就是dom,我在说php好吧。dom =document object model,文档对象模型。我的历史文章已经解释很清楚了。你虚心点学习下也不错,不要再来当小丑讨论自己不熟悉的领域 请看清楚重点,重点你已经把话题转移到质疑我只会百度,并且质疑百度的内容都是比我还不懂的人发的。你是有多优秀才会说出这种话出来的,首富怎么不是你呢?不合理啊 |
我发了二个东西,二个东西都可以用。一个一键脚本,一个mindevdesk在线pve+deepin。,都可用都能用,我藏什么了 你有作品吗? 你把我的作品定位于linux初级命令。莫非你觉得你这些php hellworld.php更高人一等? 自己心态不过关,学什么都会走火入魔。 |
服务器上的语言能理解什么是dom么 怎么不能理解,server side rendering。 大前端。好了不说了。你初学的。 |
我在给自己编写的php框架写基础原理,顺便普及一下给大家。 |
@kaleok
楼主,你说自己心态好,心态一定要保持住啊 保重,闪了。 |
就事论事。 你以为我不懂DOM就来评价 —- 至少你的学习方法有问题: 你这种要记录,先在本地搞一个备忘系统。天天调试,积累。实践。 —– 好话都说了,就看你领不领悟了
|
他性格不抗压。没办法。应该是受伤过多反抗没能赢过导致的。 我第一句那句不算是喷,就是也很想帮助他。奈何他理解错了 |
好巧我也觉得技术方面你才是小丑。 你继续每天把hostloc当你的笔记本吧。每天一篇百度来的总结心得,蛮好的。 |
有些技术,只要了解了它的第一性原理。 只要加于一点实践,就可以一个月胜任专业的技术岗。 可惜你要错过我了。 |
@kaleok 我觉得我是善意的。 可惜你性格太火爆。不然我可以指导你到一日登天的地步。 |
mvc工作原理就一句话:把dom元素当传统桌面widges处理,统统组件化和CS化,利用API通讯。这底下是设计原理。
哪有这么多话。 |
好多字,不看,不看 |
挺好 顶一下 |
绑定 |
说的好! 字多不看 |
面试八股文? |
php的话,你用上thinkphp几天,这些就无师自通了 |
请打住: |