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 ...
随机推荐
- mysql数据同步
随着各行业信息化水平的不断提升,各种各样的信息管理系统都被广泛使用,各系统间数据完全独立,形成了大量的信息孤岛.出于管理及决策方面的需求,实现各平台的数据同步是一个很迫切的需求,TreeSoft数据库 ...
- drupal7区块内容对象
区块内容对象
- ionic--配置路由
1.ng-route index中引用文件: <script src="ionic.bundle.js"></script> <script src= ...
- c# copy类中值到另外一个对象中
贴图: 调用:
- [转]实现Hive数据同步更新的shell脚本
引言: 上一篇文章<Sqoop1.4.4 实现将 Oracle10g 中的增量数据导入 Hive0.13.1 ,并更新Hive中的主表>http://www.linuxidc.com/Li ...
- 一分钟在云端快速创建MySQL数据库实例
本教程将帮助您了解如何使用Azure管理门户迅速创建,连接,配置MySQL 数据库 on Azure.完成本教程后,您将在Azure上拥有一个示例MySQL数据库服务器,并了解如何使用管理门户执行基本 ...
- 一、python小功能记录——监听键盘事件
1.监听键盘按键 from pynput.keyboard import Listener def press(key): print(key.char) with Listener(on_press ...
- 如何在windowserver2012 r2服务器AD域控制器中创建一个域管理员帐号
用户创建完毕之后,需要添加一下权限才能实现域管理员账户的相关功能
- 对于当下国产CPU如火如荼有感
国家在国家战略层面去做国产CPU这个事情,从初衷来说是好的.国产CPU战略如果能够实现,则会大大加强我国在计算机产业领域从头到尾的话语权与技术竞争力.但是个人觉得,事情不是那么简单.我将从下面几个方面 ...
- 【Leetcode】【hard】Binary Tree Postorder Traversal
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...