>  기사  >  PHP 프레임워크  >  Thinkphp 인터뷰 질문과 답변

Thinkphp 인터뷰 질문과 답변

coldplay.xixi
coldplay.xixi앞으로
2020-08-10 16:50:578253검색

Thinkphp 인터뷰 질문과 답변

1. TP의 단일 항목 파일을 이해하는 방법은 무엇인가요?

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

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

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

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

2.ThinkPHP의 MVC 레이어링이란 무엇인가요? (이해)

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

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

추천 관련 주제: 2020 thinkphp 인터뷰 질문 및 답변(전체 모음)

컨트롤러(C): 애플리케이션 컨트롤러(핵심 컨트롤러 앱 클래스)와 액션 컨트롤러가 모두 제어를 담당하는 역할에서 컨트롤러 중 액션 컨트롤러는 비즈니스 프로세스 제어를 완료하고, 애플리케이션 컨트롤러는 스케줄링 제어를 담당합니다.

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

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

전체적으로 ThinkPHP의 MVC 모델은 MVC 자체를 고수하기보다는 민첩한 개발 수단만을 제공합니다.

3.ThinkPHP 3.0 아키텍처(코어 + 동작 + 드라이버)의 동작을 어떻게 이해합니까? TP의 공식 약어는 CBD

 핵심: 프레임워크입니다. 핵심 코드는 빼놓을 수 없는 것입니다. TP 자체가 MVC 아이디어를 기반으로 개발된 프레임워크입니다.   동작: 새로운 버전의 ThinkPHP 아키텍처에서 동작은 결정적인 역할을 합니다. 시스템 코어 위에는 많은 태그 확장 비트가 있으며 각 태그 위치는 자체적으로 독립적인 기능을 실행할 수 있습니다. 행동. 이것이 행동 확장이 탄생한 방식이며, 많은 시스템 기능도 내장된 행동 확장을 통해 완성되며, 모든 행동 확장은 교체 가능하고 추가되어 기본 프레임워크 조립의 기반을 형성합니다.

드라이버: 데이터베이스 드라이버, 캐시 드라이버, 태그 라이브러리 드라이버, 템플릿 엔진 드라이버 및 외부 클래스 확장.

 프레임, 즉 프레임워크. 실제로 이는 특정 응용 프로그램의 반제품이며, 자신의 시스템을 완성하기 위해 선택하고 사용할 수 있는 구성 요소 집합입니다. 쉽게 말하면 남들이 만들어 놓은 무대를 이용해서 퍼포먼스를 하는 거죠. 게다가 프레임워크는 일반적으로 성숙하고 지속적으로 업그레이드되는 소프트웨어입니다.

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

 

(1) 더 안전한 방법인 쿼리 조건에 배열을 사용해 보십시오. 전처리 메커니즘을 사용하십시오.  (3 ) 데이터 필드 유형 확인을 켜면 숫자 데이터 유형을 강제로 변환할 수 있습니다. (필드 유형 확인은 버전 3.1부터 필수입니다.)

                                          입력하면 로그인됩니다.

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

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

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

개발 단계를 완료하고 배포한 후 프로덕션 환경에서는 디버그 모드 정의 코드를 삭제하여 배포 모드로 전환하면 됩니다. 디버깅 모드를 켜면 시스템은 먼저 시스템의 기본 디버깅 구성 파일을 로드한 다음 프로젝트의 디버깅 구성 파일을 로드합니다. 디버깅 모드의 장점은 다음과 같습니다. 모든 오류 정보 및 디버깅 정보는 디버깅을 용이하게 하기 위해 자세히 기록됩니다.

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

SQL 로그를 기록합니다.

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

파일 대소문자를 엄격하게 확인하여(Windows 플랫폼에서도) Linux 배포 문제 사전 해결

 개발, 테스트, 데모 및 기타 필요한 상황을 포함하여 개발 프로세스의 다양한 단계에서 편리하게 사용할 수 있습니다. 독립적인 프로젝트 구성 파일을 사용하여 다양한 애플리케이션 모드를 구성할 수 있습니다.

6. TP에서는 어떤 구성 모드가 지원되나요? 우선 사항?

 

ThinkPHP는 프로젝트 구성에서 고유한 계층적 구성 모드를 만들었습니다. 해당 구성 수준은 다음 항목에 반영됩니다. 디버그 구성 ->그룹 구성->확장 구성->동적 구성

  위 구성 파일의 로딩 순서는 다음 구성이 동일한 이름의 이전 구성을 덮어쓰게 되기 때문입니다(만일 적용되지 않음) 따라서 우선 순위는 오른쪽에서 왼쪽입니다.

7. TP의 URL 패턴은 무엇인가요? 어떤

이 기본값인가요?

 

ThinkPHP는 일반 모드, PATHINFO, REWRITE 및 호환성 모드를 포함하여 URL_MODEL 매개변수를 설정하여 정의할 수 있는 네 가지 URL 모드를 지원합니다.

  기본 모드는 PATHINFO 모드, URL_MODEL을 1

로 설정합니다.

8. TP의 시스템 변수는 무엇인가요? 시스템 변수를 얻는 방법은 무엇입니까?

시스템 변수를 얻는 방법:

Action에서 다음 방법을 호출하세요.

 $this->메소드 이름( " 변수 이름",["필터 메서드"],["기본값"])

9ThinkPHP 인프레임 D 뭐 기능과 M 기능의 차이점은 무엇인가요?

답변: M 방법에서는 사용자가 각 데이터 테이블에 대한 모델 클래스를 정의할 필요가 없습니다. D 방법은 모델 클래스가 있는 경우 자동으로 감지할 수 있습니다. 사용자 정의 모델 클래스가 없으면 사용자 정의 모델 클래스를 인스턴스화합니다. M 메서드가 자동으로 호출되어 Model 기본 클래스를 인스턴스화합니다. 동시에 인스턴스화된 모델은 반복적으로 인스턴스화되지 않습니다(단일 사례 모드).

관련 학습 권장사항: thinkphp

위 내용은 Thinkphp 인터뷰 질문과 답변의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제