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

2022-05-15 0 783

下面由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

新增

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

已修复

修复 Redis 驱动程序中通过引用 key 从缓存中删除 values 时可能出现的内存不足错误 (#40039)新增 Illuminate/Filesystem/FilesystemManager::setApplication() (#40058)修复在 doesntContain() 方法的参数传递 (739d847)翻译 Enum 规则消息 (#40089)修复关于日期的验证 (#40088)在 PruneCommand.php 中不允许 models 和 except 一起使用 (f62fe66)

已更改

通过 Eloquent\\Query::explain 方法对 Query\\Builder:explain 使用特定于数据库解释命令的功能 (#40075)


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

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 Laravel 8.77发布,这些功能被改进了! https://www.jike1995.com/36108.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务