Laravel 7의 공식 출시일은 2020년 3월 3일입니다. Laravel Framework의 주요 Laravel 버전 출시 정책에 따라 6개월마다(2월과 8월) 또 다른 주요 버전이 출시됩니다. LTS 릴리스가 아니므로 Laravel 릴리스 지원 정책에 따라 2020년 9월 3일까지 6개월간 버그 수정 지원을 제공하고 2021년 3월 3일까지 1년간 보안 문제 수정 지원을 제공합니다. Laravel 7의 새로운 기능과 개선 사항을 살펴보겠습니다. (laravel 기술 기사)
Laravel 7의 새로운 기능
● Laravel Airlock
● HTTP 클라이언트용 Zttp
● CORS 지원
● Custom Eloquent Cast
● 원활한 문자열 작업
● 블레이드
● 2배 더 빠른 라우팅 ● 데이터베이스 대기열 개선 ● 마크다운 이메일 템플릿 개선 ● 기타 버그 수정 및 개선.Laravel Airlock
Laravel Airlock은 API 인증을 위한 공식 패키지입니다. 간단한 토큰 기반 API 인증, 토큰 발급, 토큰 기능, 모바일 앱 인증 등을 제공합니다.HTTP 클라이언트용 Zttp
Zttp를 사용하여 API에 HTTP 요청을 보내는 것이 더 좋고 깔끔한 방법이 될 것입니다. 요청 게시<?php use Illuminate\Support\Facades\Http; $response = Http::post($url); $response = Http::post($url, [ 'site' => 'Laravel Article', ]);
$response = Http::get($url); $response = Http::get($url,['foo'=>'bar']);
$response = Http::withHeaders(['foo' => 'bar'])->post($url, [ 'baz' => 'qux', ]);
$response['foo'] $response->body() $response->json() $response->status() $response->ok()
CORS 지원
이제 Laravel 7은 기본적으로 CORS(Cross-Origin Resource Sharing)를 지원합니다. 모든 개발자가 API 개발에서 CORS 문제를 겪었다는 점을 더 잘 이해해야 합니다. Laravel 7은 이제 구성 값을 사용하여 OPTION 요청에 자동으로 응답합니다. Laravel 7에는 모든 작업을 즉시 수행할 수 있는 HandleCors 미들웨어가 함께 제공됩니다.Custom Eloquent Cast
Laravel 7의 Custom Eloquent Casting은 또 다른 멋진 기능입니다. 이 기능을 사용하면 사용자 정의 캐스트를 추가할 수 있습니다. JSON Caster를 살펴보겠습니다.<?php use Illuminate\Contracts\Database\Eloquent\CastsAttributes; class Json implements CastsAttributes { public function get($model, $key, $value, $attributes) { return json_decode($value, true); } public function set($model, $key, $value, $attributes) { return json_encode($value); } }
<?php namespace App; use App\Casts\Json; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $casts = [ 'extra' => Json::class, ]; }
유창한 문자열 조작
Laravel 7에서는 IlluminateSupportStr 클래스를 사용하여 더욱 멋진 객체 지향 작업을 수행할 수 있습니다.$currentVersion = (string) Str::of(' Laravel 6.x '); return $currentVersion->trim() ->replace('6.x', '7.x') ->slug(); // laravel-7x
Blade X
Laravel 7 Blade X 기능을 사용하면 클래스 없는 구성 요소를 만들 수 있습니다. Generate x-comComponent@php($user = $user ?? Auth::user()) @php($size = $size ?? 50) <img class="inline-block rounded-full" src="{{ $user->gravatarUrl($size) }}" width="{{ $size }}" height="{{ $size }}" />
<x-avatar/> <x-avatar size="40" /> <x-avatar size="100" />
php artisan stub:publish
$users = User::select([ 'users.*', 'last_posted_at' => Post::selectRaw('MAX(created_at)')->whereColumn('user_id', 'users.id') ]) ->withCasts(['last_posted_at' => 'date']) ->get();
다중 메일 드라이버
Laravel 7을 사용하면 단일 애플리케이션을 사용하여 여러 메일 드라이버를 설정할 수 있습니다.
Mail::mailer('noreply') ->to($request->user()) ->send(new PostUpdated($post));
새로운 Artisan 명령
Laravel 7에 새로운 artisan 테스트 명령이 추가되었습니다. 새로운 artisan test 명령은 아름다운 UX와 테스트에 대한 유용한 정보를 제공합니다.
php artisan test
Laravel 7의 개선 사항
● 라우팅 모델 바인딩 개선
● 2배 빠른 라우팅 ● 데이터베이스 대기열 개선● 마크다운 이메일 템플릿 개선
● 기타 버그 수정 및 개선.경로 모델 바인딩 개선
사용자 정의 키기본적으로 경로 모델 바인딩은 id 필드에서 작동합니다. 이제 사용자 정의할 수 있습니다.Route::get('posts/{post:slug}', function (App\Post $post) { return $post; });
use App\Post; use App\User; Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) { return $post; });
2배 더 빠른 라우팅
route:cache를 사용할 때 Laravel 7의 경로 일치 성능은 laravel 6보다 2배 빠릅니다.
데이터베이스 큐 개선
Laravel 7은 MySQL 8+를 데이터베이스로 사용하는 것을 지원합니다. 큐 애플리케이션이 개선되었습니다.마크다운 이메일 템플릿 개선
Tailwind CSS 팔레트를 사용하면 이메일용 기본 마크다운 템플릿이 더 새로운 모습으로 바뀌었습니다. 필요에 따라 템플릿을 게시하고 사용자 지정할 수 있습니다.
프로그래밍과 관련된 더 많은 내용은 PHP 중국어 홈페이지프로그래밍 입문
칼럼을 주목해주세요!