>  기사  >  Laravel 7이 곧 출시될 예정입니다. 어떤 새로운 특징과 기능이 있는지 살펴보겠습니다!

Laravel 7이 곧 출시될 예정입니다. 어떤 새로운 특징과 기능이 있는지 살펴보겠습니다!

藏色散人
藏色散人앞으로
2020-03-03 15:56:025539검색

Laravel 7이 곧 출시될 예정입니다. 어떤 새로운 특징과 기능이 있는지 살펴보겠습니다!

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, [
    &#39;site&#39; => &#39;Laravel Article&#39;,
]);

응답 받기

$response = Http::get($url);
$response = Http::get($url,[&#39;foo&#39;=>&#39;bar&#39;]);
요청 헤더 포함
$response = Http::withHeaders([&#39;foo&#39; => &#39;bar&#39;])->post($url, [
    &#39;baz&#39; => &#39;qux&#39;,
]);

Response

$response[&#39;foo&#39;]
$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 = [
        &#39;extra&#39; => Json::class,
    ];
}

유창한 문자열 조작

Laravel 7에서는 IlluminateSupportStr 클래스를 사용하여 더욱 멋진 객체 지향 작업을 수행할 수 있습니다.

$currentVersion = (string) Str::of(&#39;  Laravel 6.x &#39;);
return $currentVersion->trim()
        ->replace(&#39;6.x&#39;, &#39;7.x&#39;)
        ->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 }}"
/>

Blade x Usage

<x-avatar/>
<x-avatar size="40" />
<x-avatar size="100" />
스텁 사용자 정의

이제 artisan 명령을 사용하여 Laravel 7.x에서 스텁을 사용자 정의할 수 있습니다.

php artisan stub:publish
쿼리 시간 변환

Laravel 7은 쿼리를 실행하는 동안 값을 캐스팅하는 데 도움이 되는 withCasts 메서드를 제공합니다. 예를 들어 보겠습니다.

$users = User::select([
    &#39;users.*&#39;,
    &#39;last_posted_at&#39; => Post::selectRaw(&#39;MAX(created_at)&#39;)->whereColumn(&#39;user_id&#39;, &#39;users.id&#39;)
])
->withCasts([&#39;last_posted_at&#39; => &#39;date&#39;])
->get();

다중 메일 드라이버

Laravel 7을 사용하면 단일 애플리케이션을 사용하여 여러 메일 드라이버를 설정할 수 있습니다.

Mail::mailer(&#39;noreply&#39;)
        ->to($request->user())
        ->send(new PostUpdated($post));

새로운 Artisan 명령

Laravel 7에 새로운 artisan 테스트 명령이 추가되었습니다. 새로운 artisan test 명령은 아름다운 UX와 테스트에 대한 유용한 정보를 제공합니다.

php artisan test

Laravel 7의 개선 사항

● 라우팅 모델 바인딩 개선

● 2배 빠른 라우팅

● 데이터베이스 대기열 개선

● 마크다운 이메일 템플릿 개선

● 기타 버그 수정 및 개선.

경로 모델 바인딩 개선

사용자 정의 키

기본적으로 경로 모델 바인딩은 id 필드에서 작동합니다. 이제 사용자 정의할 수 있습니다.

Route::get(&#39;posts/{post:slug}&#39;, function (App\Post $post) {
    return $post;
});

Auto-Scope

Laravel 7은 프로그램에서 관계 호출을 식별하기 위한 규칙을 식별하는 방법을 사용하여 중첩 모델을 검색하기 위해 자동으로 쿼리 범위를 지정합니다.

use App\Post;
use App\User;
Route::get(&#39;api/users/{user}/posts/{post:slug}&#39;, function (User $user, Post $post) {
    return $post;
});

2배 더 빠른 라우팅

route:cache를 사용할 때 Laravel 7의 경로 일치 성능은 laravel 6보다 2배 빠릅니다.

데이터베이스 큐 개선

Laravel 7은 MySQL 8+를 데이터베이스로 사용하는 것을 지원합니다. 큐 애플리케이션이 개선되었습니다.

마크다운 이메일 템플릿 개선

Tailwind CSS 팔레트를 사용하면 이메일용 기본 마크다운 템플릿이 더 새로운 모습으로 바뀌었습니다. 필요에 따라 템플릿을 게시하고 사용자 지정할 수 있습니다.

프로그래밍과 관련된 더 많은 내용은 PHP 중국어 홈페이지

프로그래밍 입문

칼럼을 주목해주세요!

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