>  기사  >  백엔드 개발  >  PHP 면접 질문의 Thinkphp 질문 요약

PHP 면접 질문의 Thinkphp 질문 요약

黄舟
黄舟원래의
2017-11-09 13:33:3019198검색

지난 몇 년간 회사에 지원하러 갈 때마다 면접관이 PHP 면접 질문에서 thinkphp에 대한 질문을 하더군요. 그 이유는 최근 몇 년간 많은 기업과 프로그래머들이 thinkphp를 선호했기 때문입니다. 저희 PHP 중국어 웹사이트에서는 오늘 PHP 면접 질문에 자주 나오는 thinkphp 질문을 요약해서 알려드리겠습니다. 도움이 되셨으면 좋겠습니다!

Thinkphp 주제:

1. 일반적인 PHP 프레임워크

답변: thinkPHP

yii

ZendFramework

CakePhp

sy

관련 주제 추천: 2020 thinkphp 인터뷰 질문 및 답변 (완료)

2. TP의 단일 항목 파일을 이해하는 방법은 무엇입니까?

답변: ThinkPHP는 프로젝트 배포 및 액세스를 위해 단일 입구 모드를 채택합니다. 어떤 기능이 완료되든 프로젝트에는 통일된(그러나 반드시 유일한 것은 아님) 입구가 있습니다. 모든 프로젝트는 엔트리 파일에서 시작하고 모든 프로젝트의 엔트리 파일은 유사하다고 해야 합니다. 엔트리 파일에는 주로 다음이 포함됩니다.

프레임워크 경로, 프로젝트 경로 및 프로젝트 이름 정의(선택 사항)

정의 디버깅 모드 및 실행 모드 관련 상수(선택 사항)

프레임워크 항목 파일 로드(필수)

3. ThinkPHP의 MVC 계층화란 무엇입니까? (이해)

답변: MVC는 애플리케이션의 논리 계층과 프레젠테이션 계층을 분리하는 방법입니다. ThinkPHP도 MVC디자인 패턴을 기반으로 합니다. MVC는 추상적인 개념일 뿐 특별히 명확한 규정이 없습니다. ThinkPHP의 MVC 계층화는 대략적으로 다음과 같이 반영됩니다.

Model(M): 모델의 정의는 Model 클래스로 완성됩니다.

컨트롤러(C): 애플리케이션 컨트롤러(핵심 컨트롤러 앱 클래스)와 액션 컨트롤러는 모두 컨트롤러 역할을 맡고, 애플리케이션 컨트롤러는 스케줄링 제어를 담당합니다.

View(V): View 클래스와 템플릿 파일로 구성되어 있으며 템플릿이 100% 분리되어 독립적으로 미리보기 및 제작이 가능합니다.

하지만 사실 ThinkPHP는 M이나 V에 의존하지 않습니다. 즉, 모델이나 뷰 없이도 작동할 수 있다는 뜻입니다. 심지어 C에도 의존하지 않습니다. 이는 ThinkPHP에도 애플리케이션의 전체 일정을 담당하는 앱 컨트롤러인 Action 위에 마스터 컨트롤러가 있기 때문입니다. C가 없으면 뷰 V가 존재해야 합니다. 그렇지 않으면 더 이상 완전한 애플리케이션이 아닙니다.

간단히 말하면 ThinkPHP의 MVC 모델은 MVC 자체를 고수하기보다는 민첩한 개발 수단만을 제공합니다.

4. ThinkPHP는 SQL 주입을 어떻게 방지하나요? (이해)

답변: (1) 쿼리 조건에 배열을 사용하는 것이 더 안전한 방법입니다.

(2) 문자열 쿼리 조건을 사용해야 하는 경우 전처리 메커니즘을 사용하세요.

(3) 데이터 필드 유형 확인을 켜면 숫자 데이터 유형을 강제로 변환할 수 있습니다. (필드 유형 확인은 버전 3.1부터 필수입니다.)

(4) 자동 확인 및 자동 완성 메커니즘을 사용하여 애플리케이션 필터링을 맞춤화합니다.

(5) 악성 데이터 입력을 방지하기 위해 필드 유형 확인, 자동 확인 및 자동 완성 메커니즘을 사용합니다.

5. 디버깅 모드를 활성화하는 방법은 무엇입니까? 디버그 모드의 이점은 무엇입니까?

답변: 디버깅 모드를 켜는 것은 매우 간단합니다. 항목 파일에 상수 정의 코드 줄만 추가하면 됩니다.

<?Php,bv
    //开启调试模式
    define(&#39;APP_DEBUG&#39;, true);
    //加载框架入口文件
    require &#39;./ThinkPHP/ThinkPHP.php&#39;;

개발 단계를 완료하고 프로덕션 환경에 배포한 후. , 디버깅 모드 정의 코드만 삭제하면 배포 모드로 전환할 수 있습니다. 디버깅 모드를 켜면 시스템은 먼저 시스템의 기본 디버깅 구성 파일 을 로드한 다음 프로젝트의 디버깅 구성 파일을 로드합니다. 디버깅 모드의 장점은 다음과 같습니다.

로깅 및 모든 오류 메시지 및 디버깅 정보 활성화.

템플릿 캐싱을 끄면 템플릿 수정 사항이 즉시 적용됩니다.

SQL 분석을 용이하게 하기 위해 SQL 로그를 기록합니다.

필드 캐싱을 끄면 데이터 테이블 필드 수정이 캐시의 영향을 받지 않습니다.

Linux 배포 문제를 미리 발견하는 데 도움이 되도록 파일 케이스를 엄격하게 확인하세요(Windows 플랫폼인 경우에도).

개발, 테스트, 데모 등을 포함한 다양한 개발 프로세스 단계에서 편리하게 사용할 수 있습니다. 다양한 애플리케이션 모드에 맞게 구성할 수 있습니다.


6. TP의 URL 패턴은 무엇인가요? 기본값은 무엇입니까?

答:ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。

默认模式为:PATHINFO模式,设置URL_MODEL 为1

7、TP中系统变量有哪些?如何获取系统变量?

答:获取系统变量的方法:

只需要在Action中调用下面方法:

$this->方法名("变量名",["过滤方法"],["默认值"])

8、ThinkPHP框架中D函数与M函数的区别是什么?

答:M方法实例化模型无需用户为每个数据表定义模型类,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会自动调用M方法去实例化Model基类。同时对于已实例化过的模型,不会重复去实例化(单例模式)。

总结:

在php面试题中还有关于很多的thinkphp的题目、在这里我们就不一一列举出来了,这给大家介绍的是在面试中比较常被问的thinkphp题目!

相关推荐:

  1. 2017最全的php面试题目及答案总结

  2. 2017招聘季:PHP面试题超强总结!

  3. 11个提问频率最高的php面试题

위 내용은 PHP 면접 질문의 Thinkphp 질문 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.