>  기사  >  PHP 프레임워크  >  Laravel 8.77이 출시되었습니다. 이러한 기능이 개선되었습니다!

Laravel 8.77이 출시되었습니다. 이러한 기능이 개선되었습니다!

藏色散人
藏色散人앞으로
2022-01-20 16:59:502214검색

다음 튜토리얼 칼럼인 Laravel에서는 "Laravel 8.77이 출시되고 이러한 기능이 개선되었습니다"를 소개할 예정인데, 많은 분들께 도움이 되었으면 좋겠습니다!

Laravel 팀은 속성 변환/접근자, DateTime 인스턴스로 데이터에 액세스하기 위한 date() 메서드 요청, MAC 주소 검증, 스토리지 디스크에 사용자 정의 임시 URL을 정의하는 기능 및 v8을 개선하여 버전 8.77을 출시했습니다. x 가장 최근에 변경된 분기입니다. [추천: "laravel 비디오 튜토리얼"]

속성 변환/접속자 개선

Taylor Otwell은 속성 접근자와 수정자를 정의하는 새로운 방법을 제공합니다.

// 之前, 两个方法的方式
public function setTitleAttribute($value)
{
    $this->attributes['title'] = strtolower($value);
}
 // 新的方式
protected function title(): Attribute
{
    return new Attribute(
        set: fn ($value) => strtolower($value),
    );
}

다음은 get 및 set 구현을 모두 포함하는 예입니다.

/**
 * 获取用户的标题
 */
protected function title(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => strtolower($value),
    );
}

자세히 알아보려면 이 기능에 대한 풀 요청과 이 기능에 대한 설명 및 토론을 확인하세요.

요청 인스턴스에 날짜/시간 구문 분석이 추가되었습니다

@Italo는 요청 인스턴스에 대한 date() 메서드를 제공하여 요청 데이터에서 날짜 인스턴스를 얻는 것이 매우 편리해졌습니다.date()方法,使得从请求数据获取日期实例变得非常方便:

// 以前
if ($date = $request->input('when')) {
    $date = Carbon::parse($datetime);
}
// 之后
$date = $request->date('when');

每个连接的前缀

Ben Tidy 有助于在Predi的每个连接基础上使用前缀。以下是Redis配置的pull请求的示例:

'redis' => [
    'client' => env('REDIS_CLIENT', 'predis'),
     'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
        'prefix' => env('REDIS_PREFIX', 'prefix:'),
    ],
     'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
        'prefix' => env('REDIS_PREFIX', 'prefix2:'),
    ],
],

MAC 地址验证规则

Bilal Al-Massry 贡献了 mac_address 验证规则, 用于验证 MAC 地址:

$trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => 'foo'], ['mac' => 'mac_address']);
$this->assertFalse($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-ab'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-AB'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());

定义存储的临时 URL 方法

Ash Allen 贡献了为 Storage 门面定义自定义临时URL逻辑的能力。 以下是拉取请求的几个示例:

Storage::disk('local')
    ->buildTemporaryUrlUsing(function ($path, $expiration, $options) {
      return 'using local';
    });
 // $url is: 'using local'
$url = Storage::temporaryUrl('file.jpg', now()->addMinutes(5));

发行说明

您可以在 github 上看到以下新功能和更新的完整列表以及 8.76.0 and 8.77.0 之间的差异。 以下发行说明直接来自 变更日志:

v8.77.0

新增

  • 属性转换 / 访问器改进 (#40022)
  • 新增 Illuminate/View/Factory::renderUnless() (#40077)
  • 向 Request 实例添加日期时间解析 (#39945)
  • 使每个连接都可以在 Predis 上使用前缀 (#40083)
  • 添加了验证 MAC 地址的规则 (#40098)
  • 添加了为存储定义临时 URL 的功能 (#40100)

已修复

  • 修复 Redis 驱动程序中通过引用 key 从缓存中删除 values 时可能出现的内存不足错误 (#40039)
  • 新增 Illuminate/Filesystem/FilesystemManager::setApplication()rrreee
  • 연결을 위한 모든 접두사
  • Ben Tidy는 Predi에서 연결별로 접두사를 사용하도록 도와줍니다. 다음은 Redis 구성에 대한 풀 요청의 예입니다.
  • rrreee
  • MAC 주소 유효성 검사 규칙
  • Bilal Al-Massry가 MAC 주소 유효성 검사를 위한 mac_address 유효성 검사 규칙을 제공했습니다.
  • rrreee
  • 임시 주소 정의 저장소 방법에 대한 URL

Ash Allen은 저장소 파사드에 대한 사용자 정의 임시 URL 논리를 정의하는 기능에 기여했습니다. 다음은 끌어오기 요청의 몇 가지 예입니다.

rrreee
    릴리스 노트
  • github에서 아래 8.76.0과 8.77.0 사이의 새로운 기능, 업데이트, 차이점의 전체 목록을 볼 수 있습니다. 다음 릴리스 노트는 변경 로그에서 직접 가져온 것입니다:

v8.77.0

Added

속성 변환/접속자 개선(#40022)
🎜Illuminate/View/Factory::renderUnless()추가 > (#40077)🎜🎜요청 인스턴스에 날짜/시간 구문 분석을 추가했습니다. (#39945)🎜🎜Predis에서 접두사를 사용하도록 각 연결을 활성화했습니다. (#40083)🎜🎜MAC 주소를 확인하는 규칙을 추가했습니다. (#40098)🎜🎜 정의하는 기능을 추가했습니다. 저장용 임시 URL(#40100)🎜🎜🎜Fixed🎜🎜🎜키를 참조하여 캐시에서 값을 삭제할 때 Redis 드라이버에서 발생할 수 있는 메모리 부족 오류를 수정했습니다(#40039)🎜🎜New Illuminate /Filesystem/FilesystemManager::setApplication() (#40058)🎜🎜dontContain() 메소드에 전달되는 매개변수 수정 (739d847)🎜🎜Enum 규칙 메시지 번역 (#40089)🎜🎜날짜 유효성 검사 관련 수정 (#40088) 🎜🎜pruneCommand.php에서는 제외가 포함된 모델을 사용할 수 없습니다(f62fe66)🎜🎜🎜Changed🎜🎜🎜QueryBuilder에 대한 데이터베이스 explain 명령별 기능을 사용하세요: EloquentQuery::explain 메서드를 통해 설명하세요(# 40075)🎜🎜🎜🎜🎜 원본 주소: https://laravel-news.com/laravel-8-77-0🎜🎜번역 주소: https://learnku.com/laravel/t/64602🎜🎜

위 내용은 Laravel 8.77이 출시되었습니다. 이러한 기능이 개선되었습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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