• 技术文章 >php框架 >Laravel

    Laravel 8.77发布,这些功能被改进了!

    藏色散人藏色散人2022-01-22 09:08:45转载872

    下面由Laravel教程栏目给大家介绍《Laravel 8.77发布,这些功能被改进了》,希望对大家有所帮助!

    Laravel 团队发布了 8.77 版本 ,其中改进了属性转换/访问器,请求 date() 方法以 DateTime 实例访问数据,MAC 地址验证,在存储磁盘上定义自定义临时 URL 的能力,以及 v8.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),
        );
    }

    要了解更多信息,请查看关于此功能的 pull request 以及关于此功能的描述和讨论。

    已将日期时间解析添加到请求实例

    @Italo 为请求实例提供了一个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

    新增

    已修复

    已更改


    原文地址:https://laravel-news.com/laravel-8-77-0

    译文地址:https://learnku.com/laravel/t/64602

    以上就是Laravel 8.77发布,这些功能被改进了!的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel
    上一篇:看看最新发布的Laravel8.78有哪些新功能! 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 如何在WordPress中使用Laravel• Pipeline怎么处理Laravel多条件查询• 推荐两款在laravel中用的markdown格式css样式• Laravel能用钉钉接收系统警报!• 看看最新发布的Laravel8.78有哪些新功能!
    1/1

    PHP中文网