ThinkPHP框架面试笔试常见问题及解答


1、如何理解ThinkPHP中的单一入口文件?

ThinkPHP使用单一入口模式进行项目部署和访问,使用ThinkPHP框架,无论做什么项目,都会有一个唯一的入口文件,这个文件就是这个项目的起点,进入项目后,再进行其他操作。

一般的,入口文件都会包含三部分内容:

必须的:

    1.载入框架入口文件

可选的:

    2.定义框架路径、项目路径和项目名称

    3.定义调试模式、运行模式的相关常量


2、ThinkPHP中的MVC分层是什么

MVC设计思想是一种抽象的概念,核心是把应用程序的逻辑层和视图层分开。

ThinkPHP中用到MVC的大致体现在是:

模型(M):Model数据处理类;

控制器(C):应用控制器(核心控制器App类)和Action控制器都承担了控制器的角色,Action控制器完成业务控制,应用控制器完成调度控制。

视图(V):由View类和视图模板文件组成。

在ThinkPHP中,做到了不依赖M或者V ,也就是说没有模型或者视图也一样可以工作。甚至也不依赖C,这是因为ThinkPHP在Action之上还有一个总控制器,即App控制器,负责应用的总调度。在没有C的情况下,必然存在视图V,否则就不再是一个完整的应用。

3、如何理解ThinkPHP架构(核心+行为+驱动(CBD))

核心:ThinkPHP的核心代码,MVC构架等等;

行为:ThinkPHP框架自带的一些方法、预留的一些拓展位置等;

驱动:ThinkPHP已构建好的数据库驱动、缓存驱动、标签库驱动、模板引擎驱动等等,以及一些外置拓展;在开发过程中,可以直接使用它的这些驱动,简单高效。


4、ThinkPHP如何防止SQL注入

ThinkPHP架构设计的时候,进行了一些防SQL注入的操作。

主要需要注意的地方有:

  1. sql操作能用Array操作就用Array

  2. 必须用Sql语句进行操作时,对用户输入的内容进行预判;例如,数值类型强制转换、SQL关键字检查、正则表达式匹配等。


5、如何开启调试模式?调试模式有什么好处?

开启调试模式,只需要在入口文件中,载入框架入口文件语句之前,增加一行常量定义语句;

define("APP_DEBUG",true);

开启调试模式后,系统会自动开启以下内容:

  1. 操作日志、SQL日志等日志,任何的错误都会详细记录,便于调试;

  2. 关闭模板文件缓存,模板修改即时生效;

  3. 关闭字段缓存,数据库的字段修改不受缓存影响;

  4. 严格检查文件大小写等等


调试模式是一种在项目上线之前,开发、调试、演示等等场景下的一个便捷工具。


6、ThinkPHP中支持哪些配置模式?优先级是怎样的?

ThinkPHP在项目配置方面创建了自己都有的分层配置模式,优先顺序从右到左依次是:

    惯例配置->项目配置->调试配置->分组配置->拓展配置->动态配置


7、ThinkPHP中URL模式支持哪几种?

ThinkPHP支持4中URL模式,通过URL_MODEL参数进行配置修改,默认为PATHINFO模式,配置值0,1,2,3依次是:普通模式、PATHINFO模式、REWRITE模式和兼容模式


8、ThinkPHP中的系统变量有哪些?如何获取系统变量?

ThinkPHP中常用的系统变量包括:server、session、cookie、get、post、request

系统变量的输出必须使用$Think.作为前缀,比如:

$Think.server.php_self = $_SESSION['php_self']


9、ThinkPHP中M方法和D方法的区别(高频问题)

ThinkPHP中常用M和D两种方法来实例化数据模型类,区别是M方法直接实例化数据模型基类,D方法会检查一下是否有继承的模型类,如果没有的话,则功能和M方法一样,如果存在继承类,则实例化继承类。

本文发表于2017年10月11日 14:03
阅读 2954 讨论 1 喜欢 0

讨论

周娱

君子和而不同
按照自己的方式,去度过人生

4181 1125884
抢先体验

扫码体验
趣味小程序
文字表情生成器

加入组织

扫码添加周娱微信
备注“加入组织”
邀请进开发群

闪念胶囊

人生是一场马拉松,起跑的优劣对于整段路途而言并没有那么重要,笑到最后的都是一直在跑的人,也就是一辈子都在学习的人。

角色是谁并不重要,重要的是会不会抢戏~

在这个世界上,最顶级的趋势叫时代。次一级的趋势才是经济周期,再往下是你所在的单位和公司的经营节奏。一个人赶不赶得上好时代得看运气,但要在好时代里不留下遗憾,得靠见识。

2009年,雷军40岁生日这天,他和几个朋友一起喝酒。雷军感慨,“人是不能推着石头往山上走的,这样会很累,而且会被山上随时滚落的石头给打下去。要做的是,先爬到山顶,随便踢块石头下去。”

离职要果断,入职要缓慢。

这一生,会遇到很多人,经历很多事,得到很多,也会失去很多。但无论如何,有两样东西,绝不能丢弃,一个叫良心,另一个叫理想。

数据结构和算法这个东西,如果你不去学,可能真的这辈子都用不到,也感受不到它的好。但是一旦掌握,你就会常常被它的强大威力所折服。之前你可能需要费很大劲儿来优化的代码,需要花很多心思来设计的架构,用了数据结构和算法之后,很容易就可以解决了。

人生路上,我们会遇到很多的坎。跨过去,你就可以成长,跨不过去就是困难和停滞。而在后面很长的一段时间里,你都需要为这个困难买单。

晚上在理发店烫了个头,本来想烫成陈奕迅的样子,但是最后成了黄渤 ( ̄﹏ ̄)~~~自行脑补

Copyright © 2016 - 2018 Cion.
All Rights Reserved.
备案:鲁ICP备16007319号.