>PHP 프레임워크 >Laravel >laravel과 thinkphp의 차이점은 무엇입니까

laravel과 thinkphp의 차이점은 무엇입니까

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-11-11 10:56:0811261검색

laravel과 thinkphp의 차이점은 무엇입니까

1. 템플릿 렌더링 방식의 차이점

Laravel 프레임워크에서는 return view()를 사용하여 템플릿을 렌더링하지만 ThinkPHP에서는 $this->display() 메서드를 사용합니다. 템플릿을 렌더링합니다.

2. 실제 개발을 하다 보면 개발 위치가 정해져 있지 않은 문제에 자주 부딪히게 됩니다.

이로 인해 데이터베이스 구성을 자주 변경하게 되어 개발 작업에 문제가 발생하게 됩니다. TP는 여전히 이러한 "재앙"을 피하지 못했습니다. laravel 프레임워크에서는 .env 환경 파일의 출현으로 이 문제가 해결되었습니다. .env 파일을 다른 작업 위치에 구성하기만 하면 되며 다시 구성하는 것을 피하지 마십시오. git이든 svn이든 ".env는 파일과 함께 서버에 제출되지 않습니다."

3. Laravel 프레임워크는 많은 수의 클로저를 제공합니다.

초보자로서 저는 현재 use 메소드, 즉 함수 내부에서 외부 변수를 사용하는 방법만 사용합니다.

4 post에서 값을 전달할 때 주의할 점이 있습니다

Laravel 프레임워크에서는 Cross-Site 공격을 고려하기 때문에 Form Form을 사용하여 Post에서 값을 전달할 경우 메서드를 더 이상 양식에 추가하지 않으면 csrf_field()}} 양식에 TokenMethodnotfound라는 구문 오류가 보고되며 TP 프레임워크는 교차 사이트 공격을 방지하기 위해 코드를 수동으로 완성해야 합니다.

5. 조건부 판단문 작성 방식의 차이

Laravel 프레임워크의 If else 판단문과 foreach 문은 작성 시 @if로 시작하고 @endif로 끝나야 합니다. 그렇지 않은 경우 구문 오류가 보고됩니다. @foreach @endforeach는 동일하며 TP 프레임워크는 if esle 문을 사용하여 직접 판단하고 foreach 루프 순회를 사용하여 PHP 구문 규칙과 동일한 방식으로 사용됩니다.

6. Laravel에는 개발자가 사용할 수 있는 다양한 내장 메소드가 있습니다.

실제 애플리케이션에서는 예를 들어 백그라운드 형식에서 "객체가 모든 작업을 수행하도록 허용"하는 개발 아이디어에 더 가깝습니다. 유효성 검사와 관련하여 Laravel에는 수많은 내장 유효성 검사 방법이 있습니다. 예를 들어, 사용자 이름을 확인하려면 다음과 같이 유효성 검사 방법에서 'username'=>'required'(비워둘 수 없음)를 사용할 수 있습니다. | alpha_dash(숫자, 문자 및 밑줄이 있어야 함) | 숫자); 또한 email; same: field name; diff: field name 등과 같은 많은 내장 메소드가 있어 개발 속도가 크게 향상됩니다.

7. 암호화 방법

TP 프레임워크에서는 md5()를 사용하여 사용자 이름과 비밀번호를 암호화합니다. 하지만 md5의 단점은 역크랙이 가능하다는 점이며, 동일한 규칙 하에서 동일한 비밀번호에 대해 md5로 암호화한 문자열이 동일하게 나타날 수 있어 보안성이 저하될 수 있습니다. 그러나 Laravel 프레임워크에는 "Hash" 해시 암호화 단방향 암호화 방법이 내장되어 있으며 동일한 매개변수로 암호화된 문자열은 동일한 상황에서 절대 나타나지 않으므로 보안이 향상됩니다.

8. 테이블 생성

Laravel은 데이터베이스 테이블 생성을 위한 독립적인 내장 구조를 가지고 있으며, 기본 SQL 문이나 테이블 작성에 의존하지 않고도 데이터를 추가, 삭제, 수정, 쿼리 및 합계할 수 있습니다. SQLyogEnt 및 Navicat 상호작용과 같은 도구. ThinkPHP에서는 이것이 점진적으로 데이터를 개선하기 위해 SQL 문이나 테이블 작성 도구를 사용해야 한다는 점의 하이라이트가 될 수 있다고 생각합니다.

8.1 먼저 모델을 구축해야 합니다. 저는 gitbash를 사용합니다. Gitbash는 Windows 기반의 명령 도구로 msys GNU 환경을 기반으로 git 분산 버전 관리 도구가 있으며 주로 git에서 사용됩니다. 그러나 Laravel에서 직접 사용할 수도 있습니다: php artisan make:model Models/GoodsModel -m 모델 생성과 테이블 구조(/database/migrations) 생성을 완료합니다.

8.2. 상품 데이터 테이블에 데이터를 입력할 때 데이터 유형을 엄격하게 구분하여 추가해야 합니다. 추가 후 php artisan migration 명령을 사용하여 테이블 생성을 완료합니다.

Schema::create('goods', function (Blueprint $table) {

$table->increments('id')->comment('제품 기본 키');

$table-> string ('title')->comment('title of product');

8.3. 필드가 요구 사항을 충족하지 않거나 추가해야 하는 경우 걱정할 필요가 없습니다. github에서 프로젝트를 가져와 추가하세요. 데이터 테이블에 직접 수정하려면 다음을 사용하세요:

php artisan migration:refresh

9, ORM

테이블 생성을 도입할 때 모델을 생성하는 명령이 사용되었습니다:

php artisan make:model XXX;

Laravel의 모델은 객체 지향 개발 아이디어를 가장 잘 해석한 것입니다. 객체가 우리의 요구 사항을 완료하는 데 도움이 되도록 하세요.

5.1 매뉴얼에서 발췌: (Laravel의 Eloquent ORM은 다음과 상호 작용하는 아름답고 간결한 ActiveRecord 구현을 제공합니다. 각 데이터베이스 테이블에는 해당 "모델"을 사용하여 데이터 테이블과 상호 작용할 수 있습니다. 모델을 통해 데이터 테이블의 데이터를 검색하고 데이터 테이블에 레코드를 추가할 수 있습니다. 일괄 할당, 크로스 테이블 쿼리, 모델 삭제 및 소프트 삭제, 모델 연결과 같은 데이터 테이블 작업에 편의성을 제공하는 것은 물론 TP의 모델을 사용하여 구현할 수도 있습니다. 이는 개인 취향에 따라 다릅니다.

10. 세션 사용 방법.

10.1. ThinkPHP는 세션 작업을 캡슐화하여 도입하지 않고도 사용할 수 있습니다. 세션 시작은 애플리케이션이 초기화될 때 자동으로 실행되므로 세션을 시작하기 위해 수동으로 Session::start()를 사용할 필요가 없습니다.

Session 클래스를 사용하여 일반적인 방법으로 $_SESSION을 호출하는 것과 본질적인 차이는 없습니다. 다만 Session 클래스의 많은 매개변수를 프로젝트 구성에 따라 유연하게 설정할 수 있다는 점만 다를 뿐입니다. 메서드:

//세션 변수가 있는지 감지: Session ::is_set('name')

// 세션 변수에 값 할당: Session::set('name','value')

/ / 세션 변수 가져오기: Session::get('name');

10.2. Laravel의 일반적인 세션 방법:

$request->session()->get('key');//Get 세션의 키 이름

$request->session( )->set('key','default');//기본값을 설정하고, 지정된 키 이름이 없으면 기본값을 반환합니다

$request->session()->all(); //모든 데이터 반환

session('k'=>$v);//플래시 데이터 세션뿐만 아니라 데이터 저장을 위한 세션 쓰기

()->flash() 및 특정 데이터 유지->keep([ '','']);

세션 드라이버를 사용자 정의할 수도 있습니다.

php 중국어 웹사이트, 수많은 무료 laravel 입문 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 laravel과 thinkphp의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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