PHP常见面试题 之 ThinkPHP篇

本文详述了ThinkPHP框架的面试重点,包括单一入口模式、MVC分层、SQL优化策略、行为扩展、防止SQL注入的方法、调试模式的优势、配置模式优先级、URL模式以及系统变量获取。内容深入浅出,帮助读者巩固ThinkPHP关键知识点。
摘要由CSDN通过智能技术生成

1、常见的PHP框架

答:thinkPHP、yii、ZendFramework、CakePhp、sy

2、如何理解TP中的单一入口文件?

答:ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个项目都有一个统一(但不一定是唯一)的入口。应该说,所有项目都是从入口文件开始的,并且所有的项目的入口文件是类似的,入口文件中主要包括:

  • 定义框架路径、项目路径和项目名称(可选)

  • 定义调试模式和运行模式的相关常量(可选)

  • 载入框架入口文件(必须)

3、ThinkPHP中的MVC分层是什么?(理解)

答:MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。ThinkPHP 也是基于MVC设计模式的。MVC只是一个抽象的概念,并没有特别明确的规定,ThinkPHP中的MVC分层大致体现在:

  • 模型(M):模型的定义由Model类来完成。

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

  • 视图(V):由View类和模板文件组成,模板做到了100%分离,可以独立预览和制作。

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

总而言之,ThinkPHP的MVC模式只是提供了一种敏捷开发的手段,而不是拘泥于MVC本身。

4、如何进行SQL优化?(关于后边的解释各位可以进行理解,到时根据自己的理解把大体意思说出来即可)

答:(1)选择正确的存储引擎

  • 以 MySQL为例,包括有两个存储引擎 MyISAM 和 InnoDB,每个引擎都有利有弊。

  • MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
thinkphp面试题一般包括以下几个方面的问题: PHP方面的问题、数据库方面的问题、服务器方面的问题、前端知识、算法和其他方面的问题。 对于PHP方面的问题,可能会涉及到thinkphp的特点、常用函数、项目架构等内容。数据库方面的问题可能涉及thinkphp的数据操作、关联模型等。服务器方面的问题可能会涉及thinkphp的部署、性能优化等。前端知识可能会包括thinkphp的模板引擎和前端框架的集成。算法和其他方面的问题可能会涉及thinkphp的缓存、安全性等方面的内容。 思考一个例子:如果面试官问到如何根据用户的ID将聊天信息存放在不同的表中,我们可以使用hash的方式来获得表名。可以通过hash函数将用户ID转换成一个字符串,然后取其中的一部分作为表名的后缀。例如,可以使用crc32函数将用户ID转换成一个整数,然后取该整数的一部分作为表名的后缀。然后将表名和表前缀拼接起来作为最终的表名。这样就可以实现将聊天信息存放在不同的表中。在thinkphp框架中,可以通过自定义一个函数来实现这个逻辑。 另外,在Laravel框架中,if else判断语句和foreach语句的书写方式是以@if开头、以@endif结尾,@foreach和@endforeach同理。这是Laravel框架的一种模板语法规范,可以使代码更加清晰易读。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值