PHP面试系列 之框架(一)---- MVC框架基本工作原理
题:谈谈你对MVC的认识,介绍集中目前比较流行的MVC框架
考点:
(1)MVC工作原理
(2)常见MVC框架
延伸:
(1)单一入口的工作原理
(2)模板引擎的理解
(1)MVC工作原理
Model:模型层,处理数据
View:视图层,展示数据,与用户进行交互
Controller:控制器层,业务处理,包括获取并处理视图层传递的数据,接收模型层处理的数据结果并分配到视图层
生活案例理解:
实际MVC原理理解:
1.控制器调用视图层,向用户展示出视图 (表单)
2.用户填写表单提交数据到控制器
3.控制器根据用户的请求,将请求数据提交到模型层进行处理
4.模型需要和数据库建立连接
5.并将用户提交的数据和数据库的数据进行相关的操作(增删改查)
6.数据库将增删改查的操作结果返回给模型层
7.模型层将结果进行相关处理后返回给控制器
8.控制器将数据分配到视图层中
(2)常见的MVC框架
ThinkPHP、Yii2、CI、Yaf、Phalcon等
(3)单一入口的工作原理
用一个处理程序文件处理所有的HTTP请求,根据请求时的参数的不同区分不同模块和操作的请求
优势: 1)可以进行统一的安全性检查
2)集中处理程序
劣势: 1)URL不美观(通过URL重写进行URL美化)
2)处理效率会稍低
(4)模板引擎的理解PHP是一种HTML内嵌式的在服务器端执行的脚本语言,但是PHP有很多可以使PHP代码分开俄模板迎新,
例如:Smarty、Twig、Haml、Liquid等
模板引擎就是庞大的完善的正则表达式替换库
(5)案例
题:框架中什么是单一入口和多入口,单一入口的优缺点?
答:
1)单一入口即所有的模块都是访问同一个文件,多入口即每个模块对应各自的模块的入口文件。
2)优点:可以进行同意的安全性检验;集中处理程序
3)缺点:URL不美观;处理效率会稍低
PHP面试系列 之框架(一)---- MVC框架基本工作原理的更多相关文章
- drf框架中认证与权限工作原理及设置
0909自我总结 drf框架中认证与权限工作原理及设置 一.概述 1.认证 工作原理 返回None => 游客 返回user,auth => 登录用户 抛出异常 => 非法用户 前台 ...
- django基础-01:软件框架,MVC框架,MVT
1. 软件框架 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. 一个软件框架是由其中各个软件模块组成的,每一个模块都有特定的功能,模 ...
- 分析facebook的AsyncDisplayKit框架中的Transaction的工作原理
在AsyncDisplayKit框架中有一个_ASAsyncTransaction模块,用于AsyncDiplayNode的异步事务,使用了dispatch_group实现. 主要目的是将operat ...
- mvc和iis工作原理
学习IIS & MVC的运行原理 我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的 ...
- 05 入门 - 浅谈 ASP.NET MVC程序的工作原理
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 本篇内容 1. Global.asax文件 2. RouteConfig.cs文件 3. 视图命名和寻址的规则 前面创建了一个简 ...
- RabbitMQ系列(二)深入了解RabbitMQ工作原理及简单使用
深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍 ...
- Spring MVC中DispatcherServlet工作原理探究
转:http://blog.csdn.net/zhouyuqwert/article/details/6853730 下面类图将主要的类及方法抽离出来,以便查看方便,根据类的结构来说明整个请求是如何工 ...
- 产品前端重构(TypeScript、MVC框架设计)
最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的, ...
- Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...
- AsMVC:一个简单的MVC框架的Java实现
当初看了<从零开始写一个Java Web框架>,也跟着写了一遍,但当时学艺不精,真正进脑子里的并不是很多,作者将依赖注入框架和MVC框架写在一起也给我造成了不小的困扰.最近刚好看了一遍sp ...
随机推荐
- 【转】Oracle SQL Developer 连接 Mysql 等数据库
原文地址:http://blog.163.com/cuixiao_yan/blog/static/319232442009102882651869/ Oracle SQL Developer 个人感觉 ...
- spring boot2 使用log4j2
spring boot默认使用的是logback,看到好多地方说logback比log4j耗性能,具体么我也没试过,不过个人还是log4j用得更多. 先看pom依赖 <dependency> ...
- HDU 2546(01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://blog.csdn.net/xujinsmile/article/details/79694 ...
- 在 Ubuntu上使用 MySQL
MySQL 安装配置 https://help.ubuntu.com/12.04/serverguide/mysql.html MySQL Manual http://dev.mysql.com/do ...
- [COCI2006-2007#1] Bond
状压DP \(dp[i]\)表示当前选人状态为\(i\)且选择了前\(i.count()\)个物品时最大的概率 #include"cstdio" #include"cst ...
- 代码积累-Common
新建Common类库 /// <summary> /// string的扩展 /// </summary> public static class StringExt { // ...
- Web Api ——创建WebAPI
方法在Win10 + VS2017(MVC5)测试通过 1.建立 WebApi项目: 选择菜单 “文件->新建醒目->web ->ASP.NET Web 应用程序” 输入项目名称和位 ...
- How to save rules of the iptables?
The easy way is to use iptables-persistent. Install iptables-persistent: sudo apt-get install iptabl ...
- ZooKeeper 典型应用场景
Zookeeper基础知识 1.zookeeper是一个类似hdfs的树形文件结构,zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致. 2.zookeeper有watch事件,是 ...
- C# 装箱和拆箱[整理](转)
//1. // 装箱和拆箱是一个抽象的概念 //2. // 装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型 // 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互 ...