>PHP 프레임워크 >ThinkPHP >thinkphp5와 3의 차이점

thinkphp5와 3의 차이점

步履不停
步履不停원래의
2019-07-01 11:33:443674검색

thinkphp5와 3의 차이점

먼저 이 장은 오래된 프로젝트를 5.0으로 업그레이드하기 위한 가이드가 아니라 버전 3.X를 사용하는 개발자가 이 새 버전에 더 빨리 익숙해지고 시작하기 위한 것임을 말씀드립니다. 동시에, 5.0은 완전히 새로운 파괴적이고 재구성된 버전이기 때문에 개발자가 기존 사고 패턴을 버릴 것을 강력히 권장합니다.

3. /id/1과 유사하게 'get'을 통해 'id'를 얻을 수 있습니다. 엄밀히 말하면 해당 URL은 $_GET에 속하지 않습니다. 이제 'param'을 통해 얻을 수 있습니다. 구체적인 용도는 요청 부분을 통해 조회할 수 있습니다.

모델 변경

모델 쿼리의 새 버전은 기본 '객체'를 반환하고 시스템에서는 기본적으로 'toArray' 메서드를 추가합니다. 많은 개발자가 'all' 또는 'select'에서 'toArray'를 사용하려고 합니다. 개발자가 '객체'의 개념을 이해하고 데이터 사용을 위해 '객체'를 사용하거나 데이터베이스 작업에 'db' 방법을 사용해 볼 수 있기를 바랍니다. ', 'all' 또는 'select'의 결과는 'toArray'를 사용하여 변환할 수 없는 객체의 배열 컬렉션입니다.

새 버전 변경

이름 지정 규칙

디렉토리와 파일 이름은 '소문자 + 밑줄'을 사용하고 소문자로 시작합니다. 클래스 라이브러리와 함수 파일에는 .php라는 접미사가 붙습니다. 모두 네임스페이스에 정의되어 있으며 네임스페이스의 경로는 클래스 라이브러리 파일의 경로(대소문자 포함)와 일치합니다. 클래스 이름과 클래스 파일 이름은 일관되고 카멜 표기법으로 통일됩니다( 첫 글자는 대문자임)

Function

시스템 더 이상 어떤 기능에도 의존하지 않고 일반적으로 사용되는 작업 패키지에 대한 도우미 기능만 제공하며, 기본 시스템은 도우미 기능을 로드합니다. , 이전 장 '보조 기능'을 참조하세요.

Routing

5.0 URL 액세스를 사용할 수 없습니다. 더 이상 일반 URL 모드를 지원하지 않으며 대신 라우팅이 일반 라우팅 정의를 지원하지 않습니다. 변수 규칙(일반 정의) 사용 자세한 내용은 여기에서 설명하지 않습니다.

Controller

컨트롤러의 네임스페이스가 조정되었으므로 컨트롤러 클래스를 상속받을 필요가 없습니다.

애플리케이션 클래스 라이브러리의 네임스페이스는 모듈 이름 대신 app(수정 가능)으로 통합됩니다. 컨트롤러의 클래스 이름에는 기본적으로 컨트롤러 접미사가 없습니다. 컨트롤러 조작 방식은 직접 출력이 아닌 반환 방식 데이터로 반환

버전 비교

3.2 버전 컨트롤러 쓰기 방식

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller 
{    public function hello()
   {        echo &#39;hello,thinkphp!&#39;;
   }
}
5.0 버전 컨트롤러 쓰기 method

namespace app\index\controller;class Index 
{    public function index()
   {        return &#39;hello,thinkphp!&#39;;
   }
}

3.2 버전 컨트롤러 이름 지정

IndexController.class.php

5.0 버전 컨트롤러 이름 지정

Index.php

**컨트롤러의 올바른 출력 템플릿**

5.0 출력 템플릿 컨트롤러에서 메서드는 다음과 같습니다.

thinkController를 상속받은 경우 다음을 사용할 수 있습니다.

return $this->fetch(&#39;index/hello&#39;);

컨트롤러가 thinkController를 상속하지 않은 경우 다음을 사용합니다.

return view(&#39;index/hello&#39;);

Model

비교해야 하는 경우 이전 버전의 개선 사항, 모델 데이터베이스, 모델, 유효성 검사기의 세 부분으로 나뉘며 각각 M 방법, 모델 및 자동 검증에 해당하며 여기에 간략한 소개가 있습니다. .

Database

5.0에서는 원래 모델을 통해 사용해야 했던 체인 쿼리를 Db 클래스를 통해 직접 호출할 수 있으며, db 함수로 대체할 수 있습니다. 예:

3.2 버전

M(&#39;User&#39;)->where([&#39;name&#39;=>&#39;thinkphp&#39;])->find();
Version 5.0
db(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();

Model

새 버전의 모델 쿼리에는 다음과 같은 정적 메서드가 추가되었습니다.

User::get(1); 
User::all();User::where(&#39;id&#39;,&#39;>&#39;,10)->find();

모델 부분에는 많은 기능이 향상되었습니다. 자세한 내용은 "모델 장"을 참조하세요. 자동 검증

이전 버전과 비교하면 이전의 자동 검증으로 이해될 수 있으며 이전 검증과 다릅니다.

ThinkPHP5.0 검증은 검증을 위해 독립적인 thinkValidate 클래스 또는 검증기를 사용합니다. 모델에 적용할 수 있을 뿐만 아니라 컨트롤러에서 직접 호출할 수도 있습니다. 구체적인 사용 규칙은 "검증" 장을 참조하십시오. 이에 대해서는 여기서 반복하지 않습니다. 구성 파일

새 버전에는 이전과 다른 구성 매개변수나 구성 수준이 많이 있습니다. 코드를 보거나 공식 개발 매뉴얼을 주의 깊게 읽어보는 것이 좋습니다. 구성 문제로 인해 하루 종일 시간이 걸립니다.

비정상

5.0은 기본적으로 모든 수준의 오류에 대해 예외가 발생하며, 쉽게 디버깅할 수 있도록 자세한 오류 정보를 표시하도록 예외 페이지가 다시 디자인되었습니다.

시스템 상수 포기

이전 버전에 비해 5.0 버전에서는 시스템 변경 사항이 많이 삭제되었습니다. 필요에 따라 사용자가 직접 정의할 수 있습니다.

다음은 폐지된 상수입니다.

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH 및 기타

일부 상수는 요청에서 얻을 수 있습니다. 자세한 내용은 "요청 장"을 참조하세요.

참고: 다시 한번 강조하지만, 이 장은 5.0의 특정 기능을 빠르게 이해하기 위해 이전에 버전 3.X를 사용한 개발자를 위해 작성된 것입니다.

도움말 기능

5.0 보조 기능과 버전 3.2의 단일 문자 기능을 다음과 같이 비교합니다.

C config

E 예외

G 디버그

L lang

T 폐지

입력했어요

N 폐지

D 모델 db

A 컨트롤러

R 액션

B URL 위젯

S 캐시

F 폐지

ThinkPHP 관련 기술 기사를 더 보려면

ThinkPHP 튜토리얼 이용하기

배우다 !

위 내용은 thinkphp5와 3의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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